2

想要合并两列,一列是字符串,另一列是字符串列表,想要将字符串追加到另一列的列表中,例如:

input: 
A   B    
5 [1,2]
2 [3,4]

return:
A  B     C
5 [1,2]  [1,2,5]
2 [3,4]  [3,4,2]

尝试使用 apply 但没有如何处理不同类型的列

4

3 回答 3

3

使用DataFrame.apply

>>> df = pd.DataFrame({'A': ['5', '2'], 'B': [[1, 2], [3, 4]]})
>>> df['C'] = df.apply(lambda r: r['B'] + [r['A']], axis=1)
>>> df
   A       B          C
0  5  [1, 2]  [1, 2, 5]
1  2  [3, 4]  [3, 4, 2]

>>> df['C'] = df['B'] + df['A'].apply(lambda x: [x])
>>> df
   A       B          C
0  5  [1, 2]  [1, 2, 5]
1  2  [3, 4]  [3, 4, 2]
于 2017-09-24T03:10:53.213 回答
2
df['C']=[[x[0]] + x[1] for x in df.values.tolist()]
df
Out[435]: 
   A       B          C
0  5  [1, 2]  [5, 1, 2]
1  2  [3, 4]  [2, 3, 4]

如果使用apply

df = pd.DataFrame({'A': ['523', '212'], 'B': [[1, 2], [3, 4]]})

df.A.apply(lambda x : [x])+df.B
Out[465]: 
0    [523, 1, 2]
1    [212, 3, 4]
dtype: object
于 2017-09-24T03:24:55.753 回答
0
df.assign(C=[[x, y, z] for x, (y, z) in zip(df.A, df.B)])

   A       B          C
0  5  [1, 2]  [5, 1, 2]
1  2  [3, 4]  [2, 3, 4]
于 2017-09-24T05:19:25.283 回答