我是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
我想选择在column1,column 3和column4中具有相同值的行(这3列中的相同行)。因此输出数据帧将包含索引为0和2的行。
任何人都可以帮助我完成此自定义选择的分步过程。
答案 0 :(得分:3)
使用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
会标记所有重复的行以进行过滤。
答案 1 :(得分:0)
厄勒我正在使用以下方法:
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)]