[英]filling columns based on multiple row values in Python
我有一個帶有一些空單元格的數據框A
,我想填充它們以得到數據框B
這是一個示例數據:
A=
Month Type Sale
2016-01 A 20
2016-02 A 10
2016-01 B 40
2016-02 B 30
2016-01 C
2016-02 C
2016-01 D
2016-02 D
B=
Month Type Sale
2016-01 A 20
2016-02 A 10
2016-01 B 40
2016-02 B 30
2016-01 C 60
2016-02 C 40
2016-01 D 60
2016-02 D 40
這是我所做的:
emptTypes= ['C', 'D']
x = A.groupby('Month', sort = False).Sale.sum()
B['Sale'][B['Type'].isin(emptTypes) & B['Month'].isin(x.index)]=x
並沒有任何反應!
實際上,由於pandas 0.14,您可以直接在數據fillna
上使用fillna
,而您需要填寫缺失值。
A.fillna(B)
Out[8]:
Type Sale
Month
2016-01 A 20.0
2016-02 A 10.0
2016-01 B 40.0
2016-02 B 30.0
2016-01 C 60.0
2016-02 C 40.0
2016-01 D 60.0
2016-02 D 40.0
我記得這一點,因為不久前我問了類似的問題之后,就進行了PR合並。
這將用與B
對應的,具有匹配標簽(索引/列)的值填充A
的缺失值。 這是更通用的,因為A
和B
不需要相同的標簽,並且當您具有多索引時,代碼保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.