合并多数据库ID生成同ID多行数据集并整合结果列需求
问题1:合并多ID数据集为多行格式
假设df1、df2、df3均包含ID和tstart列,直接按行拼接即可保留所有样本的ID与对应tstart值,重复ID会自动形成多行:
import pandas as pd # 示例数据 df1 = pd.DataFrame({'ID': ['A', 'B'], 'tstart': [10, 20]}) df2 = pd.DataFrame({'ID': ['B', 'C'], 'tstart': [25, 30]}) df3 = pd.DataFrame({'ID': ['A', 'C', 'D'], 'tstart': [15, 35, 40]}) # 合并成多行数据集 merged_df = pd.concat([df1, df2, df3], ignore_index=True) print(merged_df)
输出示例:
ID tstart 0 A 10 1 B 20 2 B 25 3 C 30 4 A 15 5 C 35 6 D 40
问题2:整合多列结果到单一非NA列
针对包含ID、tstart、t stop、results 1、result 2的数据集,可将结果列转为长格式后过滤NA值:
# 示例数据 original_df = pd.DataFrame({ 'ID': ['A', 'B', 'C'], 'tstart': [10, 20, 30], 't stop': [15, 25, 35], 'results 1': [5.2, None, 7.1], 'result 2': [None, 6.3, 7.5] }) # 整合结果列 melted_df = original_df.melt( id_vars=['ID', 'tstart', 't stop'], value_vars=['results 1', 'result 2'], value_name='result' ).dropna(subset=['result']) # 清理冗余列并重置索引 final_df = melted_df.drop(columns='variable').reset_index(drop=True) print(final_df)
输出示例:
ID tstart t stop result 0 A 10 15 5.2 1 C 30 35 7.1 2 B 20 25 6.3 3 C 30 35 7.5
内容的提问来源于stack exchange,提问作者mumber1
相关产品推荐
相关产品推荐

