原始数据帧(df1
)如下所示:
NoUsager Sens NoAdresse Fait Weekday NoDemande Periods
0 000001 + 000079 1 Dim 42191000972 Soir
1 001875 + 005018 1 Dim 42191001052 Matin
2 001651 + 005018 1 Dim 42191001051 Matin
3 001486 + 000405 1 Dim 42191001250 Matin
4 002021 + 005712 1 Dim 42191000013 Matin
5 001975 + 005712 1 Dim 42191000012 Matin
6 001304 + 001408 1 Dim 42191000371 Matin
7 001355 + 005021 1 Dim 42191000622 Matin
8 002274 + 006570 1 Dim 42191001053 Matin
9 000040 + 004681 1 Dim 42191002507 Soir
我使用crosstab
生成了一个新的(df2
),其中index = NoDemande, NoUsager, Periods
和columns = ['Sens']
:
Sens + -
NoDemande NoUsager Periods
42191000622 001355 Matin 1 2
42191000959 001877 Matin 1 2
42191001325 000627 Soir 1 2
42191001412 000363 Matin 1 2
42191001424 000443 Soir 1 2
42191001426 001308 Soir 1 2
42191002507 000040 Soir 2 0
42193000171 000257 Soir 1 2
42193000172 002398 Soir 1 2
我想删除df1
中的所有行,其中NoUsager
列和NoDemande
列中的值与NoUsager
和NoDemande
索引中的值相同。因此,结果将返回一个新的数据帧df3
,其格式与df1
相同,但没有line7
和line9
。你知道吗
我试过:
df3 = df1.loc[~df1['NoDemande','NoUsager'].isin([df2.NoDemande,df2.NoUsager])]
但它返回:KeyError: ('NoDemande', 'NoUsager')
我怎样才能解决这个问题?你知道吗
任何帮助都将不胜感激!你知道吗
有三件事你做得不对。你知道吗
df1['NoDemande','NoUsager']
需要是df1[['NoDemande','NoUsager']]
df2
具有名为['NoDemande','NoUsager']
的索引级别。必须重置索引才能将它们转换回列。为此使用
isin
时,请将df2.reset_index()[['NoDemande','NoUsager']]
转换为字典。相关问题 更多 >
编程相关推荐