查找哪一列具有可帮助区分具有 Pandas 的行的唯一值
Find which column has unique values that can help distinguish the rows with Pandas
我有以下数据框,其中包含 2 行:
index name food color number year hobby music
0 Lorenzo pasta blue 5 1995 art jazz
1 Lorenzo pasta blue 3 1995 art jazz
我想写一个代码来告诉我哪一列可以区分这两行。
例如,在此数据框中,“数字”列是区分两行的列。
直到现在,我已经非常简单地完成了这项工作,只需使用 iloc 逐列查看值即可。
duplicates.iloc[:,3]
>>>
0 blue
1 blue
重要的是要考虑到:
- 这应该是 for 循环,每次我在新生成的数据帧上检查它。
- 我需要检查的行可能不超过 2 行
- 可以区分行的列可能不止 1 个。
我认为检查此类事情的方法类似于每次取一列,获取唯一值并检查它们是否彼此相等,类似于此:
for n in np.arange(0,len(df.columns)):
tmp=df.iloc[:,n]
然后我想比较时间数据帧上的所有值是否彼此相似,但在这里我卡住了,因为有时我有很多行而且我也需要。
我的最终目标:能够在for循环内部检查以识别在temporaldtaframe的每一行中具有不同值的列,从而有助于区分行。
您可以 apply
在所有列上使用 duplicated
方法:
s = df.apply(pd.Series.duplicated).any()
s[~s].index
输出:['number']
我有以下数据框,其中包含 2 行:
index name food color number year hobby music
0 Lorenzo pasta blue 5 1995 art jazz
1 Lorenzo pasta blue 3 1995 art jazz
我想写一个代码来告诉我哪一列可以区分这两行。
例如,在此数据框中,“数字”列是区分两行的列。
直到现在,我已经非常简单地完成了这项工作,只需使用 iloc 逐列查看值即可。
duplicates.iloc[:,3]
>>>
0 blue
1 blue
重要的是要考虑到:
- 这应该是 for 循环,每次我在新生成的数据帧上检查它。
- 我需要检查的行可能不超过 2 行
- 可以区分行的列可能不止 1 个。
我认为检查此类事情的方法类似于每次取一列,获取唯一值并检查它们是否彼此相等,类似于此:
for n in np.arange(0,len(df.columns)):
tmp=df.iloc[:,n]
然后我想比较时间数据帧上的所有值是否彼此相似,但在这里我卡住了,因为有时我有很多行而且我也需要。
我的最终目标:能够在for循环内部检查以识别在temporaldtaframe的每一行中具有不同值的列,从而有助于区分行。
您可以 apply
在所有列上使用 duplicated
方法:
s = df.apply(pd.Series.duplicated).any()
s[~s].index
输出:['number']