python&pandas-删除行,其中列值是另一个DataFrame中的索引值

ch36r5s

原始DataFrame(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, Periodscolumns = ['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与indexNoUsagerNoDemandein中的值相同df2因此,结果将返回df3具有相同df1格式但不带line7的新DataFrame line9

我试过了:

df3 = df1.loc[~df1['NoDemande','NoUsager'].isin([df2.NoDemande,df2.NoUsager])]

但是它返回了: KeyError: ('NoDemande', 'NoUsager')

我怎么解决这个问题?

任何帮助将不胜感激!

海盗
cols = ['NoDemande','NoUsager']
mask = df1[cols].isin(df2.reset_index()[cols].to_dict('list'))
df1[~mask.all(1)]

在此处输入图片说明


您做错了三件事。

  1. df1['NoDemande','NoUsager'] 需要是 df1[['NoDemande','NoUsager']]

  2. df2具有名称的索引级别['NoDemande','NoUsager']您必须重置索引才能将它们重新变成列。

  3. 当使用isin用于此目的,改造df2.reset_index()[['NoDemande','NoUsager']]成一个字典。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

切片pandas DataFrame,其中列的值存在于另一个数组中

来自分类Dev

Python Pandas根据另一个列中的总数从另一个dataFrame中选择值

来自分类Dev

如何基于Pandas中的另一个DataFrame更改DataFrame的某些列中的值

来自分类Dev

通过匹配另一个DataFrame中的值来最佳填充Pandas DataFrame列

来自分类Dev

遍历Pandas DataFrame行-根据另一个系列中的值更改系列值?

来自分类Dev

python pandas:根据列表中列的另一个值设置列的值

来自分类Dev

Python根据另一个数据框值中存在的列索引填充数据框值

来自分类Dev

根据python中的索引用另一个列表的值替换列表中的值

来自分类Dev

pandas:使用与另一个df中的索引和列匹配的值填充df列

来自分类Dev

Pandas:当列值与另一个 DF 的列值匹配时提取 DF 的行

来自分类Dev

如何在Pandas Dataframe中获取最接近另一个值的值

来自分类Dev

根据python中另一个列表的最大值对数组的列索引进行分组

来自分类Dev

从另一个DataFrame替换pandas.DataFrame中的值的优雅方法

来自分类常见问题

用另一个值替换pandas数据框列中的几个值

来自分类Dev

熊猫python从另一个列值中从列表列中随机选择值

来自分类Dev

Pandas / Python:使用.replace()从另一个列值替换列值

来自分类Dev

读取标题并将列值替换为 Python 中的另一个值

来自分类Dev

Python Pandas 在一个基于另一个 df 的 df 中删除行

来自分类Dev

基于 Python 中另一个数据帧的行值从数据帧中获取列?

来自分类Dev

删除包含列1中ID且在Python数据框中的另一个特定列2上至少具有一个特定值的所有行

来自分类Dev

通过另一个列值计算每个列组的百分位值-Pandas DataFrame

来自分类Dev

根据列值删除多级索引Pandas中的DataFrame行

来自分类Dev

如何基于Pandas数据框中的另一个列值添加列?

来自分类Dev

pandas:从一个df中搜索包含列表的另一个df列中的列值

来自分类Dev

Python:如何在不删除重复项的情况下将一个数据帧中的列值替换为另一个

来自分类Dev

在Pandas中,如何根据另一个列中的值拆分列?

来自分类Dev

如何用另一个数组中找到的值的索引替换Python NumPy数组中的值?

来自分类Dev

如何使用 Pandas 替换另一个文件中的匹配值的列?

来自分类Dev

基于唯一的多列索引的另一个DataFrame的新pandas DataFrame

Related 相关文章

  1. 1

    切片pandas DataFrame,其中列的值存在于另一个数组中

  2. 2

    Python Pandas根据另一个列中的总数从另一个dataFrame中选择值

  3. 3

    如何基于Pandas中的另一个DataFrame更改DataFrame的某些列中的值

  4. 4

    通过匹配另一个DataFrame中的值来最佳填充Pandas DataFrame列

  5. 5

    遍历Pandas DataFrame行-根据另一个系列中的值更改系列值?

  6. 6

    python pandas:根据列表中列的另一个值设置列的值

  7. 7

    Python根据另一个数据框值中存在的列索引填充数据框值

  8. 8

    根据python中的索引用另一个列表的值替换列表中的值

  9. 9

    pandas:使用与另一个df中的索引和列匹配的值填充df列

  10. 10

    Pandas:当列值与另一个 DF 的列值匹配时提取 DF 的行

  11. 11

    如何在Pandas Dataframe中获取最接近另一个值的值

  12. 12

    根据python中另一个列表的最大值对数组的列索引进行分组

  13. 13

    从另一个DataFrame替换pandas.DataFrame中的值的优雅方法

  14. 14

    用另一个值替换pandas数据框列中的几个值

  15. 15

    熊猫python从另一个列值中从列表列中随机选择值

  16. 16

    Pandas / Python:使用.replace()从另一个列值替换列值

  17. 17

    读取标题并将列值替换为 Python 中的另一个值

  18. 18

    Python Pandas 在一个基于另一个 df 的 df 中删除行

  19. 19

    基于 Python 中另一个数据帧的行值从数据帧中获取列?

  20. 20

    删除包含列1中ID且在Python数据框中的另一个特定列2上至少具有一个特定值的所有行

  21. 21

    通过另一个列值计算每个列组的百分位值-Pandas DataFrame

  22. 22

    根据列值删除多级索引Pandas中的DataFrame行

  23. 23

    如何基于Pandas数据框中的另一个列值添加列?

  24. 24

    pandas:从一个df中搜索包含列表的另一个df列中的列值

  25. 25

    Python:如何在不删除重复项的情况下将一个数据帧中的列值替换为另一个

  26. 26

    在Pandas中,如何根据另一个列中的值拆分列?

  27. 27

    如何用另一个数组中找到的值的索引替换Python NumPy数组中的值?

  28. 28

    如何使用 Pandas 替换另一个文件中的匹配值的列?

  29. 29

    基于唯一的多列索引的另一个DataFrame的新pandas DataFrame

热门标签

归档