Python 如何基于某些列从数据框中选择相同的行
我是熊猫队的新手,我对数据框中的行选择有问题 以下是我的数据帧:Python 如何基于某些列从数据框中选择相同的行,python,pandas,dataframe,Python,Pandas,Dataframe,我是熊猫队的新手,我对数据框中的行选择有问题 以下是我的数据帧: Index Column1 Column2 Column3 Column4 0 1234 500 NEWYORK NY 1 5678 700 AUSTIN TX 2 1234 300 NEWYORK NY 3 8910 235 RICHMOND FL 我想选择在第1列、第3列和第4列中具有相同值的行(这3列中的行相同)。因此,输出数据帧将
Index Column1 Column2 Column3 Column4
0 1234 500 NEWYORK NY
1 5678 700 AUSTIN TX
2 1234 300 NEWYORK NY
3 8910 235 RICHMOND FL
我想选择在第1列、第3列和第4列中具有相同值的行(这3列中的行相同)。因此,输出数据帧将包含索引为0和2的行
任何人都可以帮助我完成此自定义选择的分步程序。使用
df.duplicated
作为映射器索引到df
:
c = ['Column1', 'Column3', 'Column4']
df = df[df[c].duplicated(keep=False)]
df
Index Column1 Column2 Column3 Column4
0 0 1234 500 NEWYORK NY
2 2 1234 300 NEWYORK NY
keep=False
将标记所有重复行以进行筛选。之前我使用了以下方法:
d = df.T.to_dict()
dup=[]
for i in d.keys():
for j in d.keys():
if i!=j:
if d[i]['column1']==agg_d[j]['column1'] and d[i]['column3']==d[j]['column3'] and d[i]['column3']==d[j]['column3']:
set(dup.append(k[i]['column1'])
dup_rows = df[df.loc['column1'].isin(dup)]
Downvoter,非常感谢对downvote的反馈,以改进答案,谢谢!昨天我收到了很多反对票。。。没有理由。。。too@Wen每个人都会因为匿名投票而输。。。他们失去了1次代表,我失去了知道我在哪里犯了错误的机会,因此我可以改进…这就是我所关心的,*我在回答中做错了什么*谢谢。。我采用了以下方法: