使用Pandas将DataFrame前两行对应列值合并为一行的实现方法
解决方案
实现思路
直接提取前两行逐列用下划线拼接,再和第三行及之后的原始数据组合为新的DataFrame即可,无需使用groupby。
完整代码
import pandas as pd # 如果你是从csv读取数据,记得加header=None避免把第一行数据识别为表头 # df = pd.read_csv("你的文件路径.csv", header=None, sep='\s+') # 构造测试用的原始df,对应你给出的样例数据 df = pd.DataFrame([ ["hello", "hi", "ok", "bye"], ["q122", "q222", "q422", "q222"], ["hi", "hi", "hi", "hi"] ]) # 前两行逐列拼接 new_first_row = df.iloc[0] + "_" + df.iloc[1] # 拼接后的数据和第三行及之后的原始数据合并,ignore_index重置行号 new_df = pd.concat([pd.DataFrame([new_first_row]), df.iloc[2:]], ignore_index=True) # 输出验证结果 print(new_df)
输出结果
0 1 2 3 0 hello_q122 hi_q222 ok_q422 bye_q222 1 hi hi hi hi
如果你需要把拼接后的第一行设置为列名,额外加两行代码即可:
new_df.columns = new_df.iloc[0] new_df = new_df[1:].reset_index(drop=True)
内容的提问来源于stack exchange,提问作者Lynn
相关产品推荐
相关产品推荐

