我有两个熊猫数据框如下。
list1 = [{'salt': 0.2, 'fat': 0.8}, {'fat': 1.0, 'protein': 0.9}]
df1 = pd.DataFrame(line2)
# Fill missing values with zeros
df1.fillna(0, inplace=True)
list2 = [{'salt': 0.1, 'sugar': 0.9}, {'oil': 0.9, 'sugar': 0.8, 'salt': 0.2}, {'protein': 0.9}]
df2 = pd.DataFrame(line2)
# Fill missing values with zeros
df2.fillna(0, inplace=True)
Run Code Online (Sandbox Code Playgroud)
我的两个数据框如下所示。
df1:
fat protein salt
0 0.8 0.0 0.2
1 1.0 0.9 0.0
df2:
oil protein salt sugar
0 0.0 0.0 0.1 0.9
1 0.9 0.0 0.2 0.8
2 0.0 0.9 0.0 0.0
Run Code Online (Sandbox Code Playgroud)
现在我想比较 df1 和 df2 以找到丢失的主题并用零填充它们,以便数据框的最终版本如下所示。
df1:
fat protein salt oil sugar
0 0.8 0.0 0.2 0 0
1 1.0 0.9 0.0 0 0
df2:
oil protein salt sugar fat
0 0.0 0.0 0.1 0.9 0
1 0.9 0.0 0.2 0.8 0
2 0.0 0.9 0.0 0.0 0
Run Code Online (Sandbox Code Playgroud)
我知道在数据框中使用df1.fillna(0, inplace=True). 但是有两个数据框,我们该怎么做呢?
使用pd.DataFrame.align确保仅沿列轴对齐。使用参数fill_value=0用零填充缺失的元素。
df1, df2 = df1.align(df2, axis=1, fill_value=0)
Run Code Online (Sandbox Code Playgroud)
df1
fat oil protein salt sugar
0 0.8 0 0.0 0.2 0
1 1.0 0 0.9 0.0 0
Run Code Online (Sandbox Code Playgroud)
df2
fat oil protein salt sugar
0 0 0.0 0.0 0.1 0.9
1 0 0.9 0.0 0.2 0.8
2 0 0.0 0.9 0.0 0.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |