如何显示行中具有不同值的列?

时间:2019-08-05 19:54:21

标签: python pandas

我有2行的pandas DataFrame:

+---------+---------+-----------+------------+
|       ID|     Type|      Index|        Code|
+---------+---------+-----------+------------+
|111111111|       aa|          1|         XXX|
|111111111|       aa|       null|         XXX|

如何显示df行之间具有不同值的那些列? (可能有2行以上)。

在上述示例中,预期输出为Index,因为第一行的Index等于1,第二行的Index等于null。

4 个答案:

答案 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)

我想您可以通过遍历所有列来计算单个列中的不同值。

如何计算不同的值Count unique values with pandas per groups