我有两个文本列 A 和 B。我想采用第一个非空字符串,或者如果 A 和 B 都有值,则采用 A 中的值。C 是我试图创建的列:
import pandas as pd
cols = ['A','B']
data = [['data','data'],
['','data'],
['',''],
['data1','data2']]
df = pd.DataFrame.from_records(data=data, columns=cols)
A B
0 data data
1 data
2
3 data1 data2
我的尝试:
df['C'] = df[cols].apply(lambda row: sorted([val if val else '' for val in row], reverse=True)[0], axis=1) #Reverse sort to avoid picking an empty string
A B C
0 data data data
1 data data
2
3 data1 data2 data2 #I want data1 here
预期输出:
A B C
0 data data data
1 data data
2
3 data1 data2 data1
我想我想要 pandas 相当于 SQL 合并。
饮歌长啸
跃然一笑
相关分类