我有一个包含 4 列的 pandas DataFrame,我想创建一个new数据框only有三列。这个问题类似于:从数据框中提取特定列 https://stackoverflow.com/questions/10085806/extracting-specific-columns-from-a-data-frame但对于 pandas 而不是 R。以下代码不起作用,会引发错误,并且肯定不是 pandas 的方法。
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
大熊猫的做法是什么?
有一种方法可以做到这一点,它实际上看起来类似于 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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)