gpt4 book ai didi

pandas - 如何在数据框 Pandas 中合并两行

转载 作者:行者123 更新时间:2023-12-04 14:24:06 26 4
gpt4 key购买 nike

我有一个包含两行的数据框,我想将两行合并为一行。
df如下所示:

              PC           Rating CY   Rating PY    HT
0 DE101 NaN AA GV
0 DE101 AA+ NaN GV


我试图创建两个单独的数据帧,并将它们与df.merge(df2)结合在一起而没有成功。结果应该如下

              PC           Rating CY   Rating PY    HT
0 DE101 AA+ AA GV


有任何想法吗?提前致谢
df.update是可能的解决方案吗?

编辑:

df.head(1).combine_first(df.tail(1))


这适用于上面的示例。但是,对于包含数值的列,此方法无法产生所需的输出,例如对于

              PC           Rating CY   Rating PY    HT    MV1   MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0


输出应为:

              PC           Rating CY   Rating PY    HT   MV1    MV2
0 DE101 AA+ AA GV 10 20


上面的公式不对最后两列中的值求和,而是对数据帧第一行中的值进行求和。

              PC           Rating CY   Rating PY    HT   MV1    MV2
0 DE101 AA+ AA GV 0 20


如何解决这个问题?

最佳答案

在将DF.combine_first()分为两部分后,您可以使用DF方法,其中前半部分的空值将被另一半中的有限值替换,同时保持其其他有限值不变:

df.head(1).combine_first(df.tail(1))
# Practically this is same as → df.head(1).fillna(df.tail(1))


enter image description here



如果存在混合数据类型的列,则将它们划分为组成的 dtype列,然后对其进行链接,就可以对其执行各种操作。

obj_df = df.select_dtypes(include=[np.object])
num_df = df.select_dtypes(exclude=[np.object])

obj_df.head(1).combine_first(obj_df.tail(1)).join(num_df.head(1).add(num_df.tail(1)))


enter image description here

关于pandas - 如何在数据框 Pandas 中合并两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41693000/

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