gpt4 book ai didi

python - Pandas 在将值应用于行时取消列出

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:38 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,如下所示:

in: df=pd.DataFrame(index=['A','B','C'], columns=['x','y'])

out: x y
A NaN NaN
B NaN NaN
C NaN NaN

我有一个如下所示的列表

o = [[1, 2], [3, 4], [5, 6]]

当我用上面的列表创建一个新列时,放在行中的值是一个带有方括号 [] 的列表:

in: df["z"] = o

out: x y z
A NaN NaN [1, 2]
B NaN NaN [3, 4]
C NaN NaN [5, 6]

我希望上面的数据框看起来像下面(减去方括号):

          x    y       z
A NaN NaN 1, 2
B NaN NaN 3, 4
C NaN NaN 5, 6

我如何实现上述目标?

最佳答案

如果不编写某种自定义类,你就做不到。您只能将对象放入 DataFrame 中。对象决定了它们的显示方式。列表以方括号显示自身,因此方括号显示为 DataFrame 中的列表值。在不显示括号的情况下,无法将列表放入 DataFrame 中;括号是一个列表。您可以改用元组,但是您的 DataFrame 将显示带有括号:

>>> x = [(1, 2), (3, 4), (5, 6)]
>>> df["z"] = x
>>> df
x y z
A NaN NaN (1, 2)
B NaN NaN (3, 4)
C NaN NaN (5, 6)

当然,您也可以放入包含逗号的字符串,但这样您的数据就是字符串,因此您无法将它们作为元组或列表进行访问。

如果你想让 DataFrame 中的对象以某种方式显示自己,你必须编写自己的类,使用 __repr__ 以你想要的方式显示自己,然后插入实例DataFrame 中的那个类。 DataFrame 只是存储对象;对象的显示方式是由那些对象决定的,而不是由DataFrame决定的(除了DataFrame如果太长会切断显示)。

关于python - Pandas 在将值应用于行时取消列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27143478/

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