如何从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
其他回答
在最新版本的Pandas中,有一种简单的方法可以做到这一点。列名(字符串)可以按您喜欢的方式进行切片。
columns = ['b', 'c']
df1 = pd.DataFrame(df, columns=columns)
您可以提供要删除的列的列表,并使用Pandas DataFrame上的drop()函数仅返回所需的列。
只是说说而已
colsToDrop = ['a']
df.drop(colsToDrop, axis=1)
将返回仅包含列b和c的DataFrame。
此处记录了drop方法。
您可以使用pandas.DataFrame.filter方法对列进行筛选或重新排序,如下所示:
df1 = df.filter(['a', 'b'])
这在链接方法时也非常有用。
我认为这是实现目标的最简单方法。
熊猫作为pd进口列=[a','b']df1=pd.DataFrame(df,columns=cols)df1=df.iloc[:,0:2]
要选择多个列,请提取并查看它们:df是先前命名的数据帧。然后创建一个新的数据帧df1,并选择要提取和查看的列a到D。
df1 = pd.DataFrame(data_frame, columns=['Column A', 'Column B', 'Column C', 'Column D'])
df1
将显示所有必需的列!