想要合并两列,一列是字符串,另一列是字符串列表,想要将字符串追加到另一列的列表中,例如:
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而不是如何处理不同类型的列
答案 0 :(得分: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]
答案 1 :(得分: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
答案 2 :(得分: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]