我有一个 Dataframe (非常大),其中有一些空值,我可以替换它们,因为有两列:名字和重量,名字出现很多次,有时有重量,有时没有。这是一个小例子,我试图解决它。
首先,我创建了 Dataframe :
import pandas as pd
import numpy as np
lst1 = ["AA","BB","CC","AA","BB","CC","AA","BB","CC"]
lst2 = [12,np.nan,14,12,15,14,np.nan,np.nan,14]
df = pd.DataFrame(list(zip(lst1,lst2)), columns = ['Name','Weight'])
接下来,我用字典找到了每个名字的权重值:
df_2 = df.groupby('Name')['Weight'].max()
dic = df_2.to_dict()
最后我创建了一个循环来替换这一切:
for k,v in dic:
for i in range(len(df)):
if df['Weight'][i] == None and k == df['Name'][i]:
df['Weight'][i] = v
else:
print(df)
但是它返回了相同的 Dataframe ,我不知道还有什么要做的。如果你能帮助我或者给予一个建议,我会非常感谢你的。
1条答案
按热度按时间7xllpg7q1#
也许您可以将NaN填入
.groupby
:印刷品:
或:
印刷品: