基本上我想把数据框列和列表结合起来,并保持它作为一个列表。
df
a b
['2%', '70%'] ['2% W/V', '70% V/V']
['100%'] []
['5%', '60%'] ['5% W/V', '60% V/V']
我想有:
df
c
['2% W/V', '70% V/V']
['100%']
['5% W/V', '60% V/V']
我可以通过将df['b']
列设置为str
并使用combine_first
来做到这一点:
df = df.astype({"b": str}).copy()
df['b'] = df['b'].replace('[]', np.nan)
df['c'] = df['b'].combine_first(df['a']).copy()
但是我想把它作为一个列表,这样我就可以把它和列表的其他列结合起来。我试着使用:
df['c'] = df['b'].combine_first(df['a']).copy()
不设置df['b']
为str
,但不工作
combine_first函数不适用于空列表类型
df['b'] = df['b'].apply(lambda x: x if x else np.nan)
df['c'] = df['b'].combine_first(df['a'])
不需要设置为str类型。