【发布时间】:2021-06-03 14:35:29
【问题描述】:
我有一个包含 3 列感兴趣的数据框(总共 30 列)。 一个是位置,第二个是名称,最后一个是描述,例如:
import pandas as pd
inp = [
{"Location": "Boston", "Name": "Apple", "Description": "Green"},
{"Location": "Paris", "Name": "Orange", "Description": ""},
{"Location": "Paris", "Name": "Apple", "Description": ""},
{"Location": "Austin", "Name": "orange", "Description": ""},
{"Location": "Berlin", "Name": "Apple", "Description": ""},
]
df = pd.DataFrame(inp)
print(df)
输出:
Location Name Description
0 Boston Apple Green
1 Paris Orange
2 Paris Apple
3 Austin orange
4 Berlin Apple
我有大约 10 000 个这样的列,我想根据“名称”=“波士顿”填充“描述”中的缺失值(不考虑“位置”),但不填充位置为“柏林”的行.
理想输出:
Location Name Description
0 Boston Apple Green
1 Paris Orange
2 Paris Apple Green
3 Austin orange
4 Berlin Apple
忽略柏林很简单:
df.loc[df["Location"] != "Berlin"]
输出:
Location Name Description
0 Boston Apple Green
1 Paris Orange
2 Paris Apple
3 Austin orange
但我不知道如何填写缺失的描述。请记住,有很多不同的名称和描述(每个大约 1000 个)。
我知道我可以提取“波士顿”值,然后在“名称”上合并,但我觉得应该(并且可能是)一种更简单的方法。
【问题讨论】:
-
等等。为什么输出中的第 4 行(idx 3)变成了“Austin Apple”?
-
我的错误,现在更正了
标签: python python-3.x pandas