如何使用pandas合并列名相同但数据不同的两个表并输出指定格式结果
实现代码
import pandas as pd # 此处为示例数据构造,实际使用时替换为你自己的df1、df2即可 df1 = pd.DataFrame({ 'col1': ['A', 'B', 'C'], 'col2': [131, 123, 1424], 'col3': [666, 345, 3214], 'col4': [777, 435, 2314] }) df2 = pd.DataFrame({ 'col1': ['A', 'B', 'C'], 'col2': [10, 20, 23], 'col3': [1, 14, 43], 'col4': [0, 68, 4] }) # 按公共列col1合并两个表 merged_df = df1.merge(df2, on='col1', suffixes=('', '_df2')) # 定义字段拼接规则,匹配df2值为0时不显示百分比的需求 def format_col(row, col_name): val_base = row[col_name] val_percent = row[f'{col_name}_df2'] if val_percent == 0: return str(val_base) return f'{val_base} ({val_percent}%)' # 对所有数值列应用格式规则 for col in ['col2', 'col3', 'col4']: merged_df[col] = merged_df.apply(lambda x: format_col(x, col), axis=1) # 提取目标列得到最终结果 result = merged_df[['col1', 'col2', 'col3', 'col4']]
输出结果
运行后输出和需求完全匹配:
col1 col2 col3 col4 0 A 131 (10%) 666 (1%) 777 1 B 123 (20%) 345 (14%) 435 (68%) 2 C 1424 (23%) 3214 (43%) 2314 (4%)
内容的提问来源于stack exchange,提问作者royalewithcheese
相关产品推荐
相关产品推荐

