我正在尝试合并奇数列的文本和偶数列的文本。
样本系列
column
0 a
1 b
2 c
3 d
我想要这个输出
column
0 ab
1 cd
我尝试过
new_df['new'] = df['column'][::2].map(str) + df['column'][1::2]
但返回
new
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
有人可以帮助我吗?
答案 0 :(得分:2)
您可以通过reshape
设置基础numpy
数组,从中构造一个新的df,然后apply
一个str join
来实现:
In[14]:
pd.DataFrame(df['column'].values.reshape((2,-1))).apply(''.join, axis=1)
Out[14]:
0 ab
1 cd
dtype: object
在重塑之后,sum
将逐行连接起来,字符串会变得更加晦涩难懂:
In[15]:
pd.DataFrame(df['column'].values.reshape((2,-1))).sum(axis=1)
Out[15]:
0 ab
1 cd
dtype: object
答案 1 :(得分:1)
发生这种情况是因为您将它们串联在不匹配的索引上。 您要么需要重置索引,要么使用基础的numpy数组。
>>> df['column'][::2].values + df['column'][1::2].values
array(['ab', 'cd'], dtype=object)
>>> df['column'][::2].reset_index(drop=True) + df['column'][1::2].reset_index(drop=True)
0 ab
1 cd
Name: column, dtype: object
答案 2 :(得分:0)
您可以将column
的值作为数组,将concat
的值作为偶数和奇数索引使用:
a = df.column.values
pd.DataFrame(a[::2]+a[1::2],columns=['column'])
column
0 ab
1 cd