这可能被认为是 对各种方法的详尽解释的 重复,但是由于数据帧数量较多,我似乎无法在那里找到解决我的问题的方法。
我有 多个 数据框(超过 10 个),每个数据框在一列中不同 VARX
。这只是一个简单的快速示例:
import pandas as pd
df1 = pd.DataFrame({'depth': [0.500000, 0.600000, 1.300000],
'VAR1': [38.196202, 38.198002, 38.200001],
'profile': ['profile_1', 'profile_1','profile_1']})
df2 = pd.DataFrame({'depth': [0.600000, 1.100000, 1.200000],
'VAR2': [0.20440, 0.20442, 0.20446],
'profile': ['profile_1', 'profile_1','profile_1']})
df3 = pd.DataFrame({'depth': [1.200000, 1.300000, 1.400000],
'VAR3': [15.1880, 15.1820, 15.1820],
'profile': ['profile_1', 'profile_1','profile_1']})
每个 df
对于相同的配置文件具有相同或不同的深度,因此
我需要创建一个新的 DataFrame 来合并所有单独的 DataFrame,其中操作的 关键列 是 depth
和 profile
,以及每个配置文件的 所有 出现的深度值。
VARX
值因此应该是 NaN
其中没有该配置文件的该变量的深度测量。
因此,结果应该是一个新的压缩 DataFrame,所有 VARX
作为 depth
和 profile
的附加列,像这样:
name_profile depth VAR1 VAR2 VAR3
profile_1 0.500000 38.196202 NaN NaN
profile_1 0.600000 38.198002 0.20440 NaN
profile_1 1.100000 NaN 0.20442 NaN
profile_1 1.200000 NaN 0.20446 15.1880
profile_1 1.300000 38.200001 NaN 15.1820
profile_1 1.400000 NaN NaN 15.1820
请注意,配置文件的实际数量要大得多。
有任何想法吗?
原文由 PEBKAC 发布,翻译遵循 CC BY-SA 4.0 许可协议
考虑在每个数据帧上设置索引,然后使用
pd.concat
运行水平合并: