Isa*_*ley 0 python dictionary dataframe pandas
我有一个这样的数据框:
A B C D
0 1 0 nan nan
1 8 0 nan nan
2 8 1 nan nan
3 2 1 nan nan
4 0 0 nan nan
5 1 1 nan nan
Run Code Online (Sandbox Code Playgroud)
我有一本这样的字典:
dc = {'C': 5, 'D' : 10}
Run Code Online (Sandbox Code Playgroud)
我想nan用字典填充数据框中的值,但仅对于 B 列值为 0 的单元格,我想获得:
A B C D
0 1 0 5 10
1 8 0 5 10
2 8 1 nan nan
3 2 1 nan nan
4 0 0 5 10
5 1 1 nan nan
Run Code Online (Sandbox Code Playgroud)
我知道如何对数据框进行子集化,但找不到用字典填充值的方法;有任何想法吗?
您可以使用fillnawithloc并将您的 dict 传递给它:
In [13]: df.loc[df.B==0,:].fillna(dc)
Out[13]:
A B C D
0 1 0 5 10
1 8 0 5 10
4 0 0 5 10
Run Code Online (Sandbox Code Playgroud)
要为您的数据帧执行此操作,您需要使用相同的掩码切片并将上面的结果分配给它:
df.loc[df.B==0, :] = df.loc[df.B==0,:].fillna(dc)
In [15]: df
Out[15]:
A B C D
0 1 0 5 10
1 8 0 5 10
2 8 1 NaN NaN
3 2 1 NaN NaN
4 0 0 5 10
5 1 1 NaN NaN
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |