วามแตกต่างระหว่างความเป็นเอกลักษณ์ส่วนประกอบของจัดเรียงเรียบร้อยคอลัมน์ใน dataframe

0

คำถาม

ฉันเป็นน้องใหม่กับเรื่องนี้ ตอนนี้ผมทำการทดลองกับข้อมูลของเฟรมภาษาไพธอนกันเล็กน้อยติดอยู่กับอะไรบางอย่าง ฉันต้องไปเอาคอลัมน์ในข้อมูลของเฟรมซึ่งมีคนเดียวกันข้อแตกต่างระหว่างพวกเขาพิเศษจัดเรียงเรียบร้อยส่วนประกอบ. ฉันสามารถที่จะทำมันอยู่ในยืน-คนเดียวนรหัสแต่ฉันอยากจะทำมั dynamically การออกมามันออกมาจากข้อมูลของกรอบในแฟ้ม

import numpy as np
import pandas as pd

first = [20, 10, 40, 30, 10]
sec = [94, 74, 34, 80]
df = pd.DataFrame([(first,sec) for first,sec in zip(first,sec)])
print(df)
cols = list(df.columns)
sorted_df = df.sort_values(by = cols, ascending = True)
print("sorted - \n", sorted_df)
all_unique = [sorted_df[col].unique() for col in cols]
print("UNIQUE:\n", all_unique)
diff = [np.diff(lst) for last in all_unique]
print("DIFF - \n", diff)

ฉันสามารถให้รายชื่อของรายชื่อของความแตกต่างหรอก ตอนนี้ฉันต้องการให้ตรวจสอบธาตุทั้งหมดอยู่ในที่ของข้อแตกต่างเป็นเหมือนเดิมถ้าใช่ก็ต้องกลับชื่อของคอลัมน์ไม่ว่ามันจะเป็นคนแรกหรือหน่อย การส่งออกฉันได้คือ:

   0   1
0  20  94
1  10  74
2  20  34
3  30  80
sorted - 
   0   1
0  20  94
1  10  74
2  20  30
3  30  80
UNIQUE:
[array([10, 20, 30]), array([74, 34, 94, 80])]
DIFF - 
[array([10, 10]), array([-40, 60, -14])]

หลังจากนี้ฉันควรจะกลับมาที่คอลัมน์ชื่อหรือรายการชื่อของซึ่งมีส่วนประกอบเดียวกัน. ที่ต้องการพิมพ์ออกควรจะเป็นรายชื่อของคอลัมน์รายชื่อของสดมภ์ซึ่งมีความแตกต่างเดียวกันที่จัดเรียงเรียบร้อยพิเศษส่วนประกอบ. ดังนั้นนี่มันควรจะเป็น:

output - ['first']
dataframe pandas python
2021-11-24 06:13:28
1

คำตอบที่ดีที่สุด

1

ใช้รายการรู้จักเลนกับทดสอบถ้าเรียงลำดับแบค่า differencies เป็นพิเศษ:

#without unique values
output = [col for col in cols if df[col].sort_values().diff().nunique() == 1]
print("OUT - \n", output)
[0]

#with unique values
output = [col for col in cols 
          if df[col].drop_duplicates().sort_values().diff().nunique() == 1]

หรือ:

output = [col for col in cols if np.unique(np.diff(np.unique(df[col]))).shape[0] == 1]
print("OUT - \n", output)
[0]
2021-11-24 07:05:30

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................