gpt4 book ai didi

python - 如何合并多个 Pandas 数据框列

转载 作者:太空宇宙 更新时间:2023-11-04 08:29:28 33 4
gpt4 key购买 nike

我有一个类似于下图的数据框。

In[2]: df = pd.DataFrame({'P1': [1, 2, None, None, None, None],'P2': [None, None, 3, 4, None, None],'P3': [None, None, None, None, 5, 6]})
Out[2]:
P1 P2 P3
0 1.0 NaN NaN
1 2.0 NaN NaN
2 NaN 3.0 NaN
3 NaN 4.0 NaN
4 NaN NaN 5.0
5 NaN NaN 6.0

我正在尝试将所有列合并到新数据框中的单个 P 列中(见下文)。

     P
0 1.0
1 2.0
2 3.0
3 4.0
4 5.0
5 6.0

在我的实际代码中,我有一个应该合并的任意列列表,不一定是 P1P2P3( 1 到 5 列之间)。我尝试了以下几行:

new_series = pd.Series()
desired_columns = ['P1', 'P2', 'P3']
for col in desired_columns:
other_series=df[col]
new_series = new_series.align(other_series)

然而,这会产生一个 Series 对象的元组,而且它们似乎都不包含我需要的数据。我可以遍历每一行,然后检查每一列,但我觉得我可能缺少一个简单的 pandas 解决方案。

最佳答案

如果每行只有一个非 None 值向前填充 None 并按位置选择最后一列:

df['P'] = df[['P1', 'P2', 'P3']].ffill(axis=1).iloc[:, -1]
print (df)
P1 P2 P3 P
0 1.0 NaN NaN 1.0
1 2.0 NaN NaN 2.0
2 NaN 3.0 NaN 3.0
3 NaN 4.0 NaN 4.0
4 NaN NaN 5.0 5.0
5 NaN NaN 6.0 6.0

关于python - 如何合并多个 Pandas 数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54069539/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com