我尝试使用代码从数据框中选择列。我的数据框有大约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)
会更方便。
答案 0 :(得分:1)
您希望df[columns_selected]
通过列表
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