python-3.x - Pandas 用另一列中的值替换列中的值,但保留一些值
问题描述
因此,我将 Dataframe 列中的一些值替换为来自其他列的值,如下所示:
df['A'] = df.ffill(1)['B']
但是 A 列中有一些值我不想被替换并保持原样。
我想保留的值多次出现并且是一个字符串,所以也许有一种方法可以将 A 列中的所有内容替换为 B 列,但将值保留为特定的字符串?
示例:假设我的数据框看起来像这样,并且我想保留 A 列中的值 dog,然后将其余值(NaN 值除外)替换为 B 列中的值,我该怎么做。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': ['dog', 'cat', 'mouse', 'spider', 'fish', 'dog'],
'B': ['New York', 'London', np.nan, 'Berlin', np.nan,
'Paris']})
结果应该如下所示:
df_result = pd.DataFrame({'A': ['dog', 'London', 'mouse', 'Berlin', 'fish',
'Paris']})
提前感谢您的帮助:)
解决方案
国际大学联盟:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': ['dog', 'cat', 'mouse', 'spider', 'fish', 'dog'],
'B': ['New York', 'London', np.nan, 'Berlin', np.nan,
'Paris']})
df.loc[(~df["A"].str.contains("dog"))&(df["B"].notnull()),"A"] = df["B"]
print (df)
#
A B
0 dog New York
1 London London
2 mouse NaN
3 Berlin Berlin
4 fish NaN
5 dog Paris
推荐阅读
- apache-kafka - Coucbase 到 Kafka 源连接器
- python - 如何使 Python 模块中的变量在 Go 中可用?
- rust - 如何使用 structs 和 impl 的生命周期来推断实现的适当生命周期?
- ibm-cloud - cookie 哈希键是否特定于 appid 适配器?
- mysql - “MYSQL:我如何输入编号?”
- javascript - 由 toString() 存储为字符串的 Google 表格日期在写回单元格时不会被识别为日期?
- java - 随机游走不走 JAVA
- shell - Solaris 11 中不使用 SVR4 的 makepkg 命令的替代方法
- python - 运算符 pow() 返回与 ** 不同的值
- python - 使用 SMTLIB2 查找 z3 中的最大数字