我有一個數據幀有4列(A,B,C,D)。 D有一些NaN條目。我想用具有相同A,B,C值的D的平均值填充NaN值。例如,如果A,B,C,D的值分別爲x,y,z和Nan,那麼我希望將NaN值替換爲D的平均值,其中A ,B,C分別是x,y,z。如何在pandas中輸出groupby輸出?
1
A
回答
4
我想你需要:
df.D = df.groupby(['A','B','C'])['D'].apply(lambda x: x.fillna(x.mean()))
樣品:
df = pd.DataFrame({'A':[1,1,1,3],
'B':[1,1,1,3],
'C':[1,1,1,3],
'D':[1,np.nan,3,5]})
print (df)
A B C D
0 1 1 1 1.0
1 1 1 1 NaN
2 1 1 1 3.0
3 3 3 3 5.0
df.D = df.groupby(['A','B','C'])['D'].apply(lambda x: x.fillna(x.mean()))
print (df)
A B C D
0 1 1 1 1.0
1 1 1 1 2.0
2 1 1 1 3.0
3 3 3 3 5.0
2
鏈接複製這個問題作進一步的信息: Pandas Dataframe: Replacing NaN with row average
做在提到的另一個建議方式鏈接在轉置上使用簡單的填充物: df.T.fillna(df.mean(axis=1)).T
1
df['D'].fillna(df.groupby(['A','B','C'])['D'].transform('mean'))
將快於apply
In [2400]: df
Out[2400]:
A B C D
0 1 1 1 1.0
1 1 1 1 NaN
2 1 1 1 3.0
3 3 3 3 5.0
In [2401]: df['D'].fillna(df.groupby(['A','B','C'])['D'].transform('mean'))
Out[2401]:
0 1.0
1 2.0
2 3.0
3 5.0
Name: D, dtype: float64
In [2402]: df['D'] = df['D'].fillna(df.groupby(['A','B','C'])['D'].transform('mean'))
In [2403]: df
Out[2403]:
A B C D
0 1 1 1 1.0
1 1 1 1 2.0
2 1 1 1 3.0
3 3 3 3 5.0
詳細
In [2396]: df.shape
Out[2396]: (10000, 4)
In [2398]: %timeit df['D'].fillna(df.groupby(['A','B','C'])['D'].transform('mean'))
100 loops, best of 3: 3.44 ms per loop
In [2397]: %timeit df.groupby(['A','B','C'])['D'].apply(lambda x: x.fillna(x.mean()))
100 loops, best of 3: 5.34 ms per loop
相關問題
- 1. 如何在Scalding中輸出輸出
- 2. 確保GROUPBY輸出型
- 3. LaTeX輸出的Python Pandas中的Midrule
- 4. 如何在IPython pandas中配置顯示輸出
- 5. 如何在python中輸入後輸出?
- 6. 如何在python中輸出輸入
- 7. 如何輸出在PowerShell中
- 8. 如何在Salesforce中輸出?
- 9. 如何在PHP中跳出輸出
- 10. 如何在python中不輸出任何輸出
- 11. 輸出GROUPBY到CSV文件熊貓
- 12. 分析大熊貓GROUPBY輸出
- 13. 使用groupby和groupby.size()的輸出
- 14. 如何從1輸出2輸出
- 15. 如何用輸出顏色輸出()
- 16. 如何輸出
- 17. 如何輸出
- 18. pandas groupby-apply行爲,返回一個Series(不一致的輸出類型)
- 19. pandas to_csv輸出引用問題
- 20. Groupby在Pandas
- 21. 在單行中輸出「grep -o」輸出
- 22. 如何在緩衝區控制檯輸出中輸出?
- 23. 如何防止在Keras中輸出predict_proba()輸出?
- 24. 如何在php中輸出shell命令的輸出?
- 25. 如何在JSON文件中輸出JQ的輸出行號
- 26. 如何在C#/ .NET中捕獲二進制輸出輸出
- 27. 如何在Python中輸出由API輸出的元組值
- 28. 如何在Xcode輸出控制檯中顯示C++輸出
- 29. 如何在gensim word2vec中訪問輸出嵌入(輸出向量)?
- 30. 如何在Linux(GCC)中打印輸出(不是標準輸出)?
如果我或另一種答案是有幫助的,不要忘了[接受](HTTP://meta.stackexchange .com/a/5235/295067) - 點擊答案旁邊的複選標記('✓'),將其從灰色變爲填充。謝謝。 – jezrael