如何从df中选择列a和b,并将它们保存到新的数据帧df1中?
index a b c
1 2 3 4
2 3 4 5
尝试失败:
df1 = df['a':'b']
df1 = df.ix[:, 'a':'b']
如何从df中选择列a和b,并将它们保存到新的数据帧df1中?
index a b c
1 2 3 4
2 3 4 5
尝试失败:
df1 = df['a':'b']
df1 = df.ix[:, 'a':'b']
当前回答
若要排除某些列,可以将它们放在列索引中。例如:
A B C D
0 1 10 100 1000
1 2 20 200 2000
选择除两个以外的所有选项:
df[df.columns.drop(['B', 'D'])]
输出:
A C
0 1 100
1 2 200
也可以使用truncate方法选择中间列:
df.truncate(before='B', after='C', axis=1)
输出:
B C
0 10 100
1 20 200
其他回答
In [39]: df
Out[39]:
index a b c
0 1 2 3 4
1 2 3 4 5
In [40]: df1 = df[['b', 'c']]
In [41]: df1
Out[41]:
b c
0 3 4
1 4 5
对于Pandas,
具有列名称
dataframe[['column1','column2']]
要通过iloc和带有索引编号的特定列进行选择,请执行以下操作:
dataframe.iloc[:,[1,2]]
带有loc的列名可以使用如下
dataframe.loc[:,['column1','column2']]
我认为这是实现目标的最简单方法。
熊猫作为pd进口列=[a','b']df1=pd.DataFrame(df,columns=cols)df1=df.iloc[:,0:2]
在最新版本的Pandas中,有一种简单的方法可以做到这一点。列名(字符串)可以按您喜欢的方式进行切片。
columns = ['b', 'c']
df1 = pd.DataFrame(df, columns=columns)
一种不同且简单的方法:迭代行
使用迭代
df1 = pd.DataFrame() # Creating an empty dataframe
for index,i in df.iterrows():
df1.loc[index, 'A'] = df.loc[index, 'A']
df1.loc[index, 'B'] = df.loc[index, 'B']
df1.head()