我有一个包含三列的数据框。我想找到携带相同信息的行(无论列中出现的顺序如何)。我想删除所有包含冗余信息的行,但保留第三列中具有最低值的行:
import pandas as pd
pd.DataFrame({"Dependend variable": ["A", "B", "C"], "Independend variable": ["B", "A", "D"], "pvalue": [0.001, 0.005, 0.001]})
Out[1]:
Dependend variable Independend variable pvalue
0 A B 0.001
1 B A 0.005
2 C D 0.001
什么是获取此 dataFrame 的好 pythonic 方法
Out[]:
Dependend variable Independend variable pvalue
0 A B 0.001
1 C D 0.001
请您参考如下方法:
我认为您可以按 numpy.sort 对两列进行排序然后 sort_values与 drop_duplicates对于最小值:
sort1 = np.sort(df[['Dependend variable','Independend variable']], axis=1)
df[['a','b']] = pd.DataFrame(sort1, index=df.index)
print (df)
Dependend variable Independend variable pvalue a b
0 A B 0.001 A B
1 B A 0.005 A B
2 C D 0.001 C D
df = df.sort_values(['a','b','pvalue']).drop_duplicates(['a','b']).drop(['a','b'],1)
print (df)
Dependend variable Independend variable pvalue
0 A B 0.001
2 C D 0.001
