gpt4 book ai didi

python - 如何将数组格式化为 Pandas 中的特定数据帧格式?

转载 作者:行者123 更新时间:2023-11-28 20:59:16 26 4
gpt4 key购买 nike

我有一个如下所示的数组:

{'loc.1': array([  1,2,3,4,7,5,6]),'loc.2': array([  3,4,3,7,7,8,6]),'loc.3': array([  1,4,3,1,7,8,6]).....} 

在 a = pd.DataFrame(array) 之后它看起来像这样:

loc.1    loc.2  loc.3
1 3 1
2 4 4
3 3 3
4 7 1
7 7 7
5 8 8
6 6 6

这就是我想要的:

Col1.    Col.2 
loc.1 1,2,3,4,7,5,6
loc.2 3,4,3,7,7,8,6
loc.3 1,4,3,1,7,8,6

我需要这种特殊格式,因为我希望随后与另一个表格连接。 Pandas 将是我的首选解决方案..

谢谢,如果这是一个愚蠢的问题,我们深表歉意。

最佳答案

首先在字典理解中需要连接值。

然后对于 Series 使用:

a = pd.Series({k:','.join(v.astype(str)) for k, v in array.items()})
print (a)
loc.1 1,2,3,4,7,5,6
loc.2 3,4,3,7,7,8,6
loc.3 1,4,3,1,7,8,6
dtype: object

对于DataFrame:

d = {k:','.join(v.astype(str)) for k, v in array.items()}
a = pd.DataFrame({'a': list(d.keys()), 'b': list(d.values())})

另一种解决方案是创建元组:

L = [(k, ','.join(v.astype(str))) for k, v in array.items()]
a = pd.DataFrame(L, columns=['a','b'])

print (a)
a b
0 loc.1 1,2,3,4,7,5,6
1 loc.2 3,4,3,7,7,8,6
2 loc.3 1,4,3,1,7,8,6

如果列中需要数组,则删除 join 并强制转换为 string:

L = [(k, v) for k, v in array.items()]
a = pd.DataFrame(L, columns=['a','b'])
print (a)
a b
0 loc.1 [1, 2, 3, 4, 7, 5, 6]
1 loc.2 [3, 4, 3, 7, 7, 8, 6]
2 loc.3 [1, 4, 3, 1, 7, 8, 6]

关于python - 如何将数组格式化为 Pandas 中的特定数据帧格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49882324/

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