我有2行的pandas DataFrame:
+---------+---------+-----------+------------+
| ID| Type| Index| Code|
+---------+---------+-----------+------------+
|111111111| aa| 1| XXX|
|111111111| aa| null| XXX|
如何显示df
行之间具有不同值的那些列? (可能有2行以上)。
在上述示例中,预期输出为Index
,因为第一行的Index
等于1,第二行的Index
等于null。
答案 0 :(得分:1)
您可以使用以下代码:
auto
答案 1 :(得分:1)
循环遍历pandas.DataFrame.columns
,检查两行的每一列是否具有相同的值。
import pandas as pd
data=[
[111111111,'aa',1,'XXX'],
[111111111,'aa','null','XXX'],
[111111111,'aa','null','YYY']
]
df=pd.DataFrame(data, columns=["ID", "Type", "Index", "Code"])
def get_different_columns(r1, r2):
different_col_list=[]
for column in df.columns:
if df.iloc[r1][column] != df.iloc[r2][column]:
different_col_list.append(column)
return different_col_list
print(get_different_columns(0,1))
#['Index']
print(get_different_columns(1,2))
#['Code']
print(get_different_columns(0,2))
#['Index', 'Code']
答案 2 :(得分:1)
您可以简单地选择具有唯一值大于1的列的列(或数据框)。您可以使用
来获得其值不同的列。main = return ()
答案 3 :(得分:-2)
我想您可以通过遍历所有列来计算单个列中的不同值。