首页 > 解决方案 > 如果 Python 中缺少主列中的值,是否可以将值附加到列?

问题描述

我正在尝试比较 Excel 工作表/csv 中的不同列。 在此处输入图像描述

例如,主列包含我想要查看的所有变量,但正如您在 2015 年和 2016 年看到的那样,与主列相比,存在缺失值。是否可以在 Python 中编写一些东西,以便我可以将主列的所有缺失变量附加到 2015/2016 列中?

我添加了代码以文本形式显示输出:

输入数据:

     Master      2015    2016
0     apple     apple  banana
1    banana    cherry  cherry
2    cherry  elephant     NaN
3   digglet       NaN     NaN
4  elephant       NaN     NaN

创建上述数据框的代码:

import pandas as pd
import numpy as np
df = pd.DataFrame({'Master':['apple','banana','cherry','digglet','elephant'],
                   '2015':['apple','cherry','elephant',np.NaN, np.NaN],
                   '2016':['banana','cherry',np.NaN,np.NaN, np.NaN]})
print (df)

谢谢!

标签: pythonpandasdataframe

解决方案


是的,假设我正确理解您想要做什么并且您的数据框被称为df,您可以使用wherefromnumpy并执行以下操作:

import numpy as np

df['2015'] = np.where(df['2015'].isnull(),'df['Master'],'df['2015'])
df['2016'] = np.where(df['2016'].isnull(),'df['Master'],'df['2016'])

它使用isnull(), 并用 Master 中的值填充 2015 和 2016 列的值,当为空白时。

使用loop

cols_to_fill = ['2015','2016']
for col in df[cols_to_fill]:
    df[col] = np.where(df[col].isnull(),df['Master'],df[col])

与上述相同。


推荐阅读