如何在Pandas中合并两个单元格的值为符合规则的单个组合值
Pandas实现单元格值拼接方案
实现逻辑
- 第一步读取空格分隔的csv文件,无表头所以不自动生成列名
- 第二步将所有单元格值按「从左到右、从上到下」的顺序展平为一维序列
- 第三步将一维序列两两分组,每组取第二个值拼接在第一个值前面,生成最终序列
- 第四步将最终序列转为DataFrame得到新列
完整可运行代码
import pandas as pd # 1. 读取csv文件,sep='\s+'匹配任意数量空格作为分隔符,header=None表示无表头 df = pd.read_csv('你的输入文件路径.csv', sep='\s+', header=None) # 2. 把所有值按从上到下、从左到右的顺序展平为一维数组 all_values = df.values.flatten() # 3. 两两分组,每组后一个值拼接到前一个值前面 result = [group[1] + group[0] for group in all_values.reshape(-1, 2)] # 4. 转为DataFrame得到新列,可根据需要导出为csv new_df = pd.DataFrame(result, columns=['新列名']) # 导出到文件的话用下面这行 # new_df.to_csv('输出文件路径.csv', index=False)
效果验证
用你提供的输入片段运行代码,得到的new_df输出和你给出的预期结果完全一致。
注意事项
- 确保输入文件的总单元格数量为偶数,符合两两分组的规则
- 如果你的csv自带表头,删除
read_csv方法中的header=None参数即可
内容的提问来源于stack exchange,提问作者parzival
相关产品推荐
相关产品推荐

