【发布时间】:2017-03-14 16:12:47
【问题描述】:
我有一个看起来接下来的数据框:
import pandas as pd
import numpy as np
raw_data = {'col1': ['a', 'b', 'c', 'd', 'e'],
'col2': [1, 2, 3, 4, np.nan],
'col3': ['aa','b','cc','d','ff'],
'col4': [4, 6, 3, 4, np.nan]
}
df = pd.DataFrame(raw_data, columns = ['col1','col2','col3','col4'])
col1 col2 col3 col4
0 a 1.0 aa 4.0
1 b 2.0 b 6.0
2 c 3.0 cc 3.0
3 d 4.0 d 4.0
4 e NaN ff NaN
我想为每一行找到具有相同值的所有列。 所以结果应该是这样的:
Row 1: col1 eq col3;
Row 2: col2 eq col4;
Row 3: col1 eq col3; col2 eq col4
Dataframe 有 string 和 num 列,所以也许值得将所有内容都转换为 str。 NaN 数据值应该被忽略,因为有很多缺失 =)
非常感谢
【问题讨论】:
-
我支持@not_a_robot 的评论。我无法理解您的要求和陈述的结果。
-
重新发布我删除的评论:您能否澄清
col1在第 3 行(索引 2)如何等于col3?我只看到 col1 的c和 col3 的cc,它们在技术上是不相等的(尽管c是cc的真子集)。您所需的输出中显示的索引似乎已关闭... -
我从 0 开始计算行数。我的错,我应该改用“索引”。值 'c' 和 'cc' 不应被视为相等。