在使用另一个数据框更新一个熊猫数据框时,可以使用merge()函数或者join()函数来实现。这两个函数可以根据指定的列将两个数据框进行合并,并根据需要更新旧数据和添加新数据。
import pandas as pd
# 创建旧数据框
df_old = pd.DataFrame({'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]})
# 创建新数据框
df_new = pd.DataFrame({'ID': [2, 3, 4],
'Name': ['Bob', 'Charlie', 'David'],
'Age': [32, 37, 40]})
# 使用merge()函数合并数据框
df_merged = pd.merge(df_old, df_new, on='ID', how='outer')
# 更新旧数据和添加新数据
df_merged['Name_x'].update(df_merged['Name_y'])
df_merged['Age_x'].update(df_merged['Age_y'])
df_merged.drop(['Name_y', 'Age_y'], axis=1, inplace=True)
df_merged.rename(columns={'Name_x': 'Name', 'Age_x': 'Age'}, inplace=True)
print(df_merged)
输出结果为:
ID Name Age
0 1 Alice 25.0
1 2 Bob 32.0
2 3 Charlie 37.0
3 4 David 40.0
import pandas as pd
# 创建旧数据框
df_old = pd.DataFrame({'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35]})
# 创建新数据框
df_new = pd.DataFrame({'ID': [2, 3, 4],
'Name': ['Bob', 'Charlie', 'David'],
'Age': [32, 37, 40]})
# 使用join()函数合并数据框
df_merged = df_old.set_index('ID').join(df_new.set_index('ID'), how='outer', lsuffix='_old', rsuffix='_new')
# 更新旧数据和添加新数据
df_merged['Name_old'].update(df_merged['Name_new'])
df_merged['Age_old'].update(df_merged['Age_new'])
df_merged.drop(['Name_new', 'Age_new'], axis=1, inplace=True)
df_merged.rename(columns={'Name_old': 'Name', 'Age_old': 'Age'}, inplace=True)
print(df_merged)
输出结果为:
Name Age
ID
1 Alice 25.0
2 Bob 32.0
3 Charlie 37.0
4 David 40.0
以上是使用merge()函数和join()函数来更新一个熊猫数据框的方法。根据具体的需求和数据结构,选择合适的方法进行操作。
领取专属 10元无门槛券
手把手带您无忧上云