【问题标题】:Is there a way to reverse the dropping method in pandas?有没有办法扭转熊猫的丢弃方法?
【发布时间】:2019-12-26 01:21:51
【问题描述】:

我知道你可以使用 df1 = df1[df1['Computer Name'] != 'someNameToBeDropped'] 将给定的字符串作为一行删除

如果我想反其道而行之怎么办。假设删除除字符串列表中的所有内容之外的所有内容。

有没有我没有注意到的简单 hack?

【问题讨论】:

  • df1 = df1[df1['Computer Name'] == 'someNameNOTToBeDropped'] ?
  • @harvpan 有正确的解决方案,但 ~ 是一个有趣的运算符。 df1[~(df1['Computer Name'] != 'someNameToBeDropped')]
  • harv 有正确的解决方案,因为列的可能值中只有两个名称。对于n 值,~ 是要走的路;p
  • 注:以上都很好,但我更喜欢使用loc,因为它是一个矢量化的内置方法df1 = df1.loc[~(df1['Computer Name'] != 'someNameToBeDropped'), :]
  • 但它会丢弃除 'someNameNOTToBeDropped' 之外的所有内容吗?

标签: python excel python-3.x pandas numpy


【解决方案1】:

尝试这样获取行,使得 col 的值在给定列表中

df = df[df[column].isin(list_of_strings)]

附加排除列表中的内容

df = df[~df[column].isin(list_of_values)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    相关资源
    最近更新 更多