Pandas 熊猫:按列表选择行
我尝试使用以下代码从数据帧中选择列。我的数据框有大约50个值。最后,我想创建所选列的总和,用这些总和值创建一个新列,然后删除所选列 我从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
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)的列之后,我想删除选中的所有列