gpt4 book ai didi

pandas - 创建 Pandas 数据帧,每个元素都是从其他数据帧创建的元组

转载 作者:行者123 更新时间:2023-12-03 23:57:27 26 4
gpt4 key购买 nike

我需要创建一个包含来自一系列数据帧数组的元组的数据帧。我需要的是以下内容:

我有数据框 ab :

a = pd.DataFrame(np.array([[1, 2],[3, 4]]), columns=['one', 'two'])
b = pd.DataFrame(np.array([[5, 6],[7, 8]]), columns=['one', 'two'])

a:
one two
0 1 2
1 3 4

b:
one two
0 5 6
1 7 8

我想创建一个数据框 a_b其中每个元素都是由 a 和 b 中的相应元素形成的元组,即
a_b = pd.DataFrame([[(1, 5), (2, 6)],[(3, 7), (4, 8)]], columns=['one', 'two'])

a_b:
one two
0 (1, 5) (2, 6)
1 (3, 7) (4, 8)

理想情况下,我想用任意数量的数据帧来做到这一点。
我希望有一种比使用 for 循环更优雅的方式
我正在使用 python 3

最佳答案

您可以使用 numpy.rec.fromarrays((a.values, b.values)).tolist() :

In [34]: pd.DataFrame(np.rec.fromarrays((a.values, b.values)).tolist(), 
columns=a.columns,
index=a.index)
Out[34]:
one two
0 (1, 5) (2, 6)
1 (3, 7) (4, 8)

合并三个DF:
In [36]: pd.DataFrame(np.rec.fromarrays((a.values, b.values, a.values)).tolist(),
columns=a.columns,
index=a.index)
Out[36]:
one two
0 (1, 5, 1) (2, 6, 2)
1 (3, 7, 3) (4, 8, 4)

更新:

suppose you don't know in advance the number of dataframes, how would you do?


In [60]: dfs = [a,b,a]

In [62]: tuple_of_dfs = (x.values for x in dfs)

In [63]: pd.DataFrame(np.rec.fromarrays(tuple_of_dfs).tolist(), columns=a.columns, index=a.index)
Out[63]:
one two
0 (1, 5, 1) (2, 6, 2)
1 (3, 7, 3) (4, 8, 4)

关于pandas - 创建 Pandas 数据帧,每个元素都是从其他数据帧创建的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41908655/

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