将特定的选定列提取到新的 DataFrame 作为副本

新手上路,请多包涵

我有一个有 4 列的 pandas DataFrame,我想创建一个 只有 三列的 DataFrame。这个问题类似于: Extracting specific columns from a data frame but for pandas not R. 以下代码不起作用,引发错误,当然不是 pandasnic 的方法。

 import pandas as pd
old = pd.DataFrame({'A' : [4,5], 'B' : [10,20], 'C' : [100,50], 'D' : [-30,-50]})
new = pd.DataFrame(zip(old.A, old.C, old.D)) # raises TypeError: data argument can't be an iterator

pandasnic 的做法是什么?

原文由 SpeedCoder5 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 734
2 个回答

有一种方法可以做到这一点,它实际上看起来类似于 R

 new = old[['A', 'C', 'D']].copy()

在这里,您只需从原始数据框中选择所需的列并为它们创建一个变量。如果您想修改新的数据框,您可能需要使用 .copy() 来避免 SettingWithCopyWarning

另一种方法是使用 filter 默认情况下会创建一个副本:

 new = old.filter(['A','B','D'], axis=1)

最后,根据原始数据框中的列数,使用 drop 来表达这一点可能更简洁(默认情况下也会创建一个副本):

 new = old.drop('B', axis=1)

原文由 johnchase 发布,翻译遵循 CC BY-SA 3.0 许可协议

最简单的方法是

new = old[['A','C','D']]

.

原文由 stidmatt 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题