熊猫:按列表选择行

时间:2016-10-17 15:43:49

标签: pandas sum

我尝试使用代码从数据框中选择列。我的数据框有大约50个值。最后,我想创建所选列的总和,使用这些总和值创建一个新列,然后删除所选列。

我从

开始
columns_selected = ['A','B','C','D','E']
df = df[df.column.isin(columns_selected)]

但是它说AttributeError:' DataFrame'对象没有属性'列'

关于总和:因为我不想写总和

df['sum_1'] = df['A']+df['B']+df['C']+df['D']+df['E']

我还想过像

这样的东西
 df['sum_1'] = df[columns_selected].sum(axis=1)

会更方便。

1 个答案:

答案 0 :(得分:1)

您希望df[columns_selected]通过列表

来子选择df 然后,您可以df['sum_1'] = df[columns_selected].sum(axis=1)

要将df过滤到只有感兴趣的cols,请通过列表df = df[columns_selected]注意它只是一个字符串列表的常见错误:df = df['a','b','c']这将引发一个列KeyError

请注意,您在原始尝试中输入了一个拼写错误:

df = df.loc[:,df.columns.isin(columns_selected)]

上面的内容会有效,首先你需要columns而不是column,其次你可以通过传递给loc或{来使用布尔掩码作为对列的掩码{1}}作为列选择arg:

ix