如何从两个不同的DataFrames中添加两个列,其中所有列都相等,但我想添加的列除外?
参见下面的示例代码:
#IN:
import pandas as pd
import numpy as np
#Observe that 'col2' in both dataframes are equal
df1 = pd.DataFrame({'col1': [3.2, 4.4, 6.5, np.NaN], 'col2': [1.2, 2.2, np.NaN, 5.7]})
col1 col2
0 3.2 1.2
1 4.4 2.2
2 6.5 nan
3 nan 5.7
df2 = pd.DataFrame({'col1': [1.0, 2.0, 3.0, 4.0], 'col2': [1.2, 2.2, np.NaN, 5.7]})
col1 col2
0 1.0 1.2
1 2.0 2.2
2 3.0 nan
3 4.0 5.7
# new_df = [INSERT SOME MAGIC FUNCTION HERE]
# I tried: new_df = df1.add(df2, level='col1')
# but obviously that did not work
#OUT (This is what I want):
print(new_df)
col1 col2
0 4.2 1.2
1 6.4 2.2
2 9.5 nan
3 4.0 5.7观察到np.NaN + some_float = some_float
发布于 2018-04-06 12:09:10
这是一条路。只需记住,当您添加2系列fillna(0)。
res = pd.DataFrame({'col1': df1['col1'].fillna(0) + df2['col1'].fillna(0),
'col2': df1['col2']})
print(res)
# col1 col2
# 0 4.2 1.2
# 1 6.4 2.2
# 2 9.5 NaN
# 3 4.0 5.7发布于 2018-04-06 12:10:03
我认为你可以这么做:
new_df = df1.copy()
new_df['col1'] = df1['col1'].fillna(0).add(df2['col1'])
col1 col2
0 4.2 1.2
1 6.4 2.2
2 9.5 NaN
3 4.0 5.7https://stackoverflow.com/questions/49692483
复制相似问题