如何解决如果满足两个条件,我可以替换数据帧中单元格的空值吗?
我们来了!
大家好, 我正在尝试编写一个循环,其中: 如果特定列中的单元格的值为“无”并且下一个单元格的值等于一组国家/地区,那么我将“无”值更改为下一个单元格的值,即国家。
我觉得我在解决这个问题上有点偏离。
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)
输入:
日期 | 省/州 | 国家/地区 | 恢复了 | 省 | |
---|---|---|---|---|---|
0 | 22/01/2020 | 无 | 阿富汗 | 0 | 无 |
1 | 22/01/2020 | 无 | 阿尔巴尼亚 | 0 | 无 |
2 | 22/01/2020 | 塔斯马尼亚 | 澳大利亚 | 0 | 塔斯马尼亚 |
3 | 22/01/2020 | 无 | 澳大利亚 | 0 | 无 |
4 | 22/01/2020 | 河南 | 中国 | 0 | 河南 |
5 | 22/01/2020 | 甘肃 | 中国 | 0 | 甘肃 |
6 | 22/01/2020 | 无 | 中国 | 0 | 无 |
7 | 22/01/2020 | 几内亚法语 | 法国 | 0 | 几内亚法语 |
8 | 22/01/2020 | 无 | 法国 | 0 | 无 |
输出:
日期 | 省/州 | 国家/地区 | 恢复了 | 省 | |
---|---|---|---|---|---|
0 | 22/01/2020 | 无 | 阿富汗 | 0 | 无 |
1 | 22/01/2020 | 无 | 阿尔巴尼亚 | 0 | 无 |
2 | 22/01/2020 | 塔斯马尼亚 | 澳大利亚 | 0 | 塔斯马尼亚 |
3 | 22/01/2020 | 无 | 澳大利亚 | 0 | 澳大利亚 |
4 | 22/01/2020 | 河南 | 中国 | 0 | 河南 |
5 | 22/01/2020 | 甘肃 | 中国 | 0 | 甘肃 |
6 | 22/01/2020 | 无 | 中国 | 0 | 中国 |
7 | 22/01/2020 | 几内亚法语 | 法国 | 0 | 几内亚法语 |
8 | 22/01/2020 | 无 | 法国 | 0 | 法国 |
我正在处理一个有 87552 行的 df。
伙计们,我希望你能帮助我!我试图在堆栈上搜索,但我失败了!
解决方法
看起来你的方法效果很好,所以......但你想要更好的东西
sel = df5['Province/State'].isnull() & df5['Country/Region'].isin(country_with_province)
df5.loc[sel,"Province"] = df5.loc[sel,'Country/Region']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。