【问题标题】:Can I replace the null value of a cell in a dataframe if two conditions are satisfied?如果满足两个条件,我可以替换数据框中单元格的空值吗?
【发布时间】:2021-04-07 22:26:51
【问题描述】:

我们来了!

大家好, 我正在尝试编写一个循环,其中: 如果特定列中单元格的值为“无”,并且下一个单元格的值等于国家/地区数组,那么我将“无”值更改为下一个单元格的值,即国家。

我想我在解决这个问题上有点偏离。

country_with_province = array(['Australia', 'China', 'France'], dtype=object)

for m in country_with_province:
    if df5.loc[(df5['Province/State'] == None) and (df5['Country/Region'] == m):
        df5.loc[:, "Province"] = df5.Province.fillna(m)

输入:

Date Province/State Country/Region Recovered Province
0 22/01/2020 None Afghanistan 0 None
1 22/01/2020 None Albania 0 None
2 22/01/2020 Tasmania Australia 0 Tasmania
3 22/01/2020 None Australia 0 None
4 22/01/2020 Hennan China 0 Hennan
5 22/01/2020 Gansu China 0 Gansu
6 22/01/2020 None China 0 None
7 22/01/2020 Guineal French France 0 Guineal French
8 22/01/2020 None France 0 None

输出:

Date Province/State Country/Region Recovered Province
0 22/01/2020 None Afghanistan 0 None
1 22/01/2020 None Albania 0 None
2 22/01/2020 Tasmania Australia 0 Tasmania
3 22/01/2020 None Australia 0 Australia
4 22/01/2020 Hennan China 0 Hennan
5 22/01/2020 Gansu China 0 Gansu
6 22/01/2020 None China 0 China
7 22/01/2020 Guineal French France 0 Guineal French
8 22/01/2020 None France 0 France

我正在处理一个有 87552 行的 df。

各位,希望你们能帮帮我!我尝试在堆栈上搜索,但失败了!

【问题讨论】:

    标签: python pandas dataframe nonetype


    【解决方案1】:

    看起来你的方法很好用,所以......但你想要更好的东西

    sel = df5['Province/State'].isnull() & df5['Country/Region'].isin(country_with_province)
    df5.loc[sel, "Province"] = df5.loc[sel, 'Country/Region']
    

    【讨论】:

    • @ansev - 我认为是is?从字面上看,pd.isnull is pd.isnaTrue
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2019-02-27
    • 2013-11-15
    相关资源
    最近更新 更多