本文介绍了 pandas 将两列与空值组合在一起的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含两列的 df,我想合并两列而忽略 NaN 值.问题是有时两列都有 NaN 值,在这种情况下,我希望新列也有 NaN.示例如下:
I have a df with two columns and I want to combine both columns ignoring the NaN values. The catch is that sometimes both columns have NaN values in which case I want the new column to also have NaN. Here's the example:
df = pd.DataFrame({'foodstuff':['apple-martini', 'apple-pie', None, None, None], 'type':[None, None, 'strawberry-tart', 'dessert', None]})
df
Out[10]:
foodstuff type
0 apple-martini None
1 apple-pie None
2 None strawberry-tart
3 None dessert
4 None None
我尝试使用 fillna
并解决这个问题:
I tried to use fillna
and solve this :
df['foodstuff'].fillna('') + df['type'].fillna('')
我得到:
0 apple-martini
1 apple-pie
2 strawberry-tart
3 dessert
4
dtype: object
第 4 行变成了空值.在这种情况下我想要的是 NaN 值,因为两个组合列都是 NaN.
The row 4 has become a blank value. What I wan't in this situation is a NaN value since both the combining columns are NaNs.
0 apple-martini
1 apple-pie
2 strawberry-tart
3 dessert
4 None
dtype: object
推荐答案
使用 fillna
在一列上,填充值为另一列:
Use fillna
on one column with the fill values being the other column:
df['foodstuff'].fillna(df['type'])
结果输出:
0 apple-martini
1 apple-pie
2 strawberry-tart
3 dessert
4 None
这篇关于 pandas 将两列与空值组合在一起的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!