在工作中,获取了c_dataframe这样一个DataFrame类型的数据,样式如下:
代码 最新价
111 10.0
222 20.0
手头还有一个csv,里面的内容如下:
代码 最低价 备注
111 12.0 张三
222 15.0 李四
333 18.0 王五
目的:使用 c_dataframe中的数据更新csv中的数据。
代码如下:
def update_csv(c_dataframe):
# c_dataframe是一个DataFrame类型的数据
# 读取CSV文件到DataFrame
csv_file_path = 'example.csv'
original_df = pd.read_csv(csv_file_path, encoding='gbk')
original_df['代码'] = original_df['代码'].astype(str)
# 通过merge函数将当前数据与原始数据合并,基于'代码'字段进行匹配
# 使用how='left'确保保留原始数据中的所有记录,即使某些记录在current_df中不存在
merged_df = pd.merge(original_df, c_dataframe[['代码', '最新价']], on='代码', how='left')
# 更新'最低价'字段为'最新价'(仅当'最新价'存在时)
# 使用combine_first()方法保留原始'最低价'中的非空值,当'最新价'为空时不进行更新
merged_df['最低价'] = merged_df['最新价'].combine_first(merged_df['最低价'])
# 如果不需要保留'最新价'列,可以将其删除
merged_df = merged_df.drop(columns=['最新价'])
merged_df.to_csv(csv_file_path, index=False, encoding='gbk')