如何合并Pandas数据框所有行并生成指定单行投资现金流结果?
解决方案
修改后的代码如下:
import pandas as pd wbSheets = pd.ExcelFile("Jaaroverzichten Cashflow.xlsx").sheet_names frames = [] for st in wbSheets: df = pd.read_excel("Jaaroverzichten cashflow.xlsx", st) # 提取各sheet中符合条件的行 filtered_row = df.loc[df["Onderdelen"].str.lower().str.contains('cash flows') & df["Onderdelen"].str.lower().str.contains('investing activities')] frames.append(filtered_row) res = pd.concat(frames) # 聚合数值列:提取每列的非空有效数值 aggregated_data = res.iloc[:, 1:].agg(lambda col: col.dropna().iloc[0] if not col.dropna().empty else None, axis=0) # 构造目标格式的单行DataFrame final_df = pd.DataFrame({ 'Onderdelen': ['Net Cash flow from investing cash flows'], **aggregated_data.to_dict() }) # 保存结果到CSV final_df.to_csv('Test.csv', index=False)
关键修改说明
- 数值聚合:遍历所有年份列,提取列内的非空值(原数据中每个年份仅在对应sheet的行中有有效数值,其余为NaN)
- 构造目标行:创建包含指定标题的单行数据,将聚合后的各年份数值对应填入
- 输出文件:生成符合需求的单行CSV结果
内容的提问来源于stack exchange,提问作者Troll Sport
相关产品推荐
相关产品推荐

