Pandas DataFrame 列连接

Posted

技术标签:

【中文标题】Pandas DataFrame 列连接【英文标题】:Pandas DataFrame column concatenation 【发布时间】:2013-11-09 14:28:10 【问题描述】:

我有一个带有 100 万行和 5 列的 pandas Dataframe y。

np.shape(y)  
(1037889, 5)

列值都是 0 或 1。看起来像这样:

y.head()  
a, b, c, d, e  
0, 0, 1, 0, 0  
1, 0, 0, 1, 1  
0, 1, 1, 1, 1  
0, 0, 0, 0, 0

我想要一个包含 100 万行和 1 列的数据框。

np.shape(y)  
(1037889, )

其中的列只是连接在一起的 5 列。

New column  
0, 0, 1, 0, 0  
1, 0, 0, 1, 1  
0, 1, 1, 1, 1  
0, 0, 0, 0, 0

我一直在尝试不同的东西,例如mergeconcatdstack 等... 但似乎无法弄清楚这一点。

【问题讨论】:

【参考方案1】:

如果您希望新列将所有数据连接到字符串,那么 apply() 函数是一个很好的例子:

>>> df = pd.DataFrame('a':[0,1,0,0], 'b':[0,0,1,0], 'c':[1,0,1,0], 'd':[0,1,1,0], 'c':[0,1,1,0])
>>> df
   a  b  c  d
0  0  0  0  0
1  1  0  1  1
2  0  1  1  1
3  0  0  0  0
>>> df2 = df.apply(lambda row: ','.join(map(str, row)), axis=1)
>>> df2
0    0,0,0,0
1    1,0,1,1
2    0,1,1,1
3    0,0,0,0

【讨论】:

以上是关于Pandas DataFrame 列连接的主要内容,如果未能解决你的问题,请参考以下文章

pandas使用pd.DateOffset生成时间偏移量(指定年数月数天数小时分钟)把dataframe数据中的时间数据列统一偏移(相加偏移向后移动时间时间增加)

Pandas Dataframe 和 Series 连接返回空 Dataframe 或 NaN 列

Pandas:连接多个 .csv 文件并返回聚合了同名列的 Dataframe

Pandas DataFrame 列连接

认识pandas

pandas表连接