Pandas 熊猫:按列表选择行

Pandas 熊猫:按列表选择行,pandas,sum,Pandas,Sum,我尝试使用以下代码从数据帧中选择列。我的数据框有大约50个值。最后,我想创建所选列的总和,用这些总和值创建一个新列,然后删除所选列 我从 columns_selected = ['A','B','C','D','E'] df = df[df.column.isin(columns_selected)] 但它说AttributeError:“DataFrame”对象没有属性“column” 关于总数:因为我不想写总数 df['sum_1'] = df['A']+df['B']+df['C']+d

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

我从

columns_selected = ['A','B','C','D','E']
df = df[df.column.isin(columns_selected)]
但它说AttributeError:“DataFrame”对象没有属性“column”

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

df['sum_1'] = df['A']+df['B']+df['C']+df['D']+df['E']
我还认为

 df['sum_1'] = df[columns_selected].sum(axis=1)

会更方便。

您希望
df[columns\u selected]
通过列列表辅助选择df

然后,您可以执行
df['sum\u 1']=df[columns\u selected].sum(axis=1)

要过滤df,使其只传递感兴趣的列列表,
df=df[columns\u selected]
注意,只传递字符串列表是一个常见错误:
df=df['a','b','c']
这将引发一个
KeyError

请注意,您最初的尝试中有一个输入错误:

df = df.loc[:,df.columns.isin(columns_selected)]
上述方法可能已经奏效,首先您需要
,其次您可以通过传递到
loc
ix
作为列选择参数,使用布尔掩码作为列的掩码:

In [49]:
df = pd.DataFrame(np.random.randn(5,5), columns=list('abcde'))
df

Out[49]:
          a         b         c         d         e
0 -0.778207  0.480142  0.537778 -1.889803 -0.851594
1  2.095032  1.121238  1.076626 -0.476918 -0.282883
2  0.974032  0.595543 -0.628023  0.491030  0.171819
3  0.983545 -0.870126  1.100803  0.139678  0.919193
4 -1.854717 -2.151808  1.124028  0.581945 -0.412732

In [50]:
cols = ['a','b','c']
df.ix[:, df.columns.isin(cols)]

Out[50]:
          a         b         c
0 -0.778207  0.480142  0.537778
1  2.095032  1.121238  1.076626
2  0.974032  0.595543 -0.628023
3  0.983545 -0.870126  1.100803
4 -1.854717 -2.151808  1.124028

好的,第一部分有效。在那之后删除选中的列怎么样?你的意思是只
df=df[columns\u selected]
?是的,在创建.sum(axis=1)的列之后,我想删除选中的所有列