需要填充0的幫助。使用熊貓填充從另一個數據幀中丟失1個數據幀的值
在下面的數據框中,我有一個「Item_Visibility」列,它有零。我需要用第二個數據幀中的值填充這些值(圖2)。 2個數據幀之間的公共列是「Item_Identifier」。
在此先感謝
需要填充0的幫助。使用熊貓填充從另一個數據幀中丟失1個數據幀的值
在下面的數據框中,我有一個「Item_Visibility」列,它有零。我需要用第二個數據幀中的值填充這些值(圖2)。 2個數據幀之間的公共列是「Item_Identifier」。
在此先感謝
試試這個:
import pandas as pd
import numpy as np
df = pd.DataFrame({"A":["a", "b", "c", "d", "e"], "B":[1, 2, 0, 0, 0]})
s = pd.Series([10, 20, 30, 40], index=["a", "b", "c", "d"])
mask = df["B"] == 0
df.loc[mask, "B"] = s[df.loc[mask, "A"]].values
個DF:
A B
0 a 1
1 b 2
2 c 0
3 d 0
4 e 0
S:
a 10
b 20
c 30
d 40
dtype: int64
輸出:
A B
0 a 1.0
1 b 2.0
2 c 30.0
3 d 40.0
4 e NaN
print (df1)
a b c d
0 FDA15 9.30 Low Fat 0.016
1 FDX07 19.20 Regular 0.000
2 NCD19 8.93 Low Fat 0.000
3 FDP10 NaN Low Fat 0.127
print (df2)
e d
0 FDW59 0.0202
1 FDX07 0.0178
df1.d = df1.d.mask(df1.d == 0, df1.a.map(df2.set_index('e')['d']))
print (df1)
a b c d
0 FDA15 9.30 Low Fat 0.0160
1 FDX07 19.20 Regular 0.0178
2 NCD19 8.93 Low Fat NaN
3 FDP10 NaN Low Fat 0.1270
非常感謝您的回覆 – Amit
感謝那些工作 – Amit