在 DataFrame 的开头(最左端)插入一列
Posted
技术标签:
【中文标题】在 DataFrame 的开头(最左端)插入一列【英文标题】:Insert a column at the beginning (leftmost end) of a DataFrame 【发布时间】:2018-02-28 15:59:41 【问题描述】:我有 30 列的数据框,想添加一个新列开始。
【问题讨论】:
【参考方案1】:DataFrame.insert
df = pd.DataFrame('A': ['x'] * 3, 'B': ['x'] * 3)
df
A B
0 x x
1 x x
2 x x
seq = ['a', 'b', 'c']
# This works in-place.
df.insert(0, 'C', seq)
df
C A B
0 a x x
1 b x x
2 c x x
pd.concat
df = pd.concat([pd.Series(seq, index=df.index, name='C'), df], axis=1)
df
C A B
0 a x x
1 b x x
2 c x x
DataFrame.reindex
+ assign
先reindex,然后assign会记住原列的位置。
df.reindex(['C', *df.columns], axis=1).assign(C=seq)
C A B
0 a x x
1 b x x
2 c x x
【讨论】:
我们如何将它插入到最后(最后一列)?为什么df.insert(-1, 'C', seq)
不起作用?
要在最后插入列,只需执行df['C'] = seq
。以上是关于在 DataFrame 的开头(最左端)插入一列的主要内容,如果未能解决你的问题,请参考以下文章
使用第一列作为键,第二列作为值的 DataFrame 到 Json
如何在不生成 SettingWithCopyWarning 的情况下将列插入 DataFrame
批量从Dataframe插入到DB,忽略Pyspark中的失败行