如何切片/拆分Pandas DataFrame选取指定列生成新DataFrame
Pandas选取指定列生成新DataFrame的实现方法
假设你存储10列数据的原始Pandas DataFrame变量名为df,直接将需要保留的列名按目标顺序组成列表,传入DataFrame的索引方括号即可生成新的DataFrame,操作不会修改原始表数据。
- 选取Apple、Echo两列生成第一个新DataFrame:
df1 = df[['Apple', 'Echo']]
- 选取Guitar、Hello、Bee三列生成第二个新DataFrame:
df2 = df[['Guitar', 'Hello', 'Bee']]
如果你习惯用显式行列索引的loc写法,也可以用下面的格式实现完全相同的效果,其中:表示选取所有行:
df1 = df.loc[:, ['Apple', 'Echo']] df2 = df.loc[:, ['Guitar', 'Hello', 'Bee']]
实用注意点
- 传入的列名必须和原DataFrame的列名完全匹配,大小写、空格、特殊字符都不能有偏差,否则会触发
KeyError报错 - 新DataFrame的列顺序和你传入列表的顺序完全一致,和这些列在原DataFrame中的先后位置无关
- 如果需要确保后续修改新DataFrame的数值时不会联动修改原始数据,可以在选列代码后追加
.copy()显式生成独立数据副本:
df1 = df[['Apple', 'Echo']].copy() df2 = df[['Guitar', 'Hello', 'Bee']].copy()
内容的提问来源于stack exchange,提问作者Gerrit van Rensburg
相关产品推荐
相关产品推荐

