gpt4 book ai didi

python - 将元组列表转换为 Pandas 中的数据框

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

我有一个元组列表 (y),我希望将其转换为 DataFrame x。 y 中有五个元组。 y 中的每个元组都有 33 个元素。所有 5 个元组中的元素 1 都是文本并且是相同的。所有五个元组中的元素二是文本并且是相同的。每个元组中的元素三是文本并且是相同的。

我想将 y 中的前三个元素作为 DataFrame 中的列名。我想将元组列表转换为 10 x 3 DataFrame。棘手的部分是数据帧中的第 1 行是 y[1] 中的元素 4、5、6,数据帧中的第 2 行是 y[1] 中的元素 7、8、9,第 3 行是 10,11, 12...等

y 看起来像这样(没有显示整个列表):

List of tuples y                
y[0] y[1] y[2] y[3] y[4]

Formula Formula Formula Formula Formula
Phase Phase Phase Phase Phase
Value Value Value Value Value
"a" "a" "a" "a" "a"
"nxxx" "nxxx" "nxxx" "nxxx" "nxxx"
3.2 3.7 22.4 18.2 9.7
"h45" "h45" "h45" "h45" "h45"
"cacpp" "cacpp" "cacpp" "cacpp" "cacpp"
45.2 61.76 101.2 171.89 203.7
"trx" "trx" "trx" "trx" "trx"
"v2o5p" "v2o5p" "v2o5p" "v2o5p" "v2o5p"
0.24 0.81 0.97 1.2 1.98
"blnt" "blnt" "blnt" "blnt" "blnt"
"g2o3" "g2o3" "g2o3" "g2o3" "g2o3"
807.2 905.8 10089 10345 10979

我想按如下方式将 y 转换为 DataFrame x:

DataFrame x     
column 1 column 2 column 3

Formula Phase Value
"a" "nxxx" 3.2
"h45" "cacpp" 45.2
"trx" "v2o5p" 0.24
"blnt" "g2o3" 807.2
"a" "nxxx" 3.7
"h45" "cacpp" 61.76
"trx" "v2o5p" 0.81
"blnt" "g2o3" 905.8
"a" "nxxx" 22.4
"h45" "cacpp" 101.2
"trx" "v2o5p" 0.97
"blnt" "g2o3" 10089
etc etc etc

我知道必须有一种简单的方法来遍历元组列表。但对 Pandas 来说是新手,对 Python 来说相对较新,所以我正在努力寻找一种干净的方法来做到这一点。

最佳答案

基本上,您需要:1) 删除每个元组的前 3 个元素(只需要一个作为列标题)2) concatenate y 中的所有元素3) reshape 到 3 列所有这些都可以通过 numpy 实现,如果您使用 pandas

,您一定很熟悉
#Step 1) and 2) above.
In [83]: data = np.concatenate ([z[3:] for z in y])

#reshape
In [84]: data = data.reshape(-1, 3)

#Now data is a numpy array which looks what you need:
In [85]: data
Out[85]:
array([['a', 'nxxx', '3.2'],
['h45', 'cacpp', '45.2'],
['trx', 'v2o5p', '0.24'],
['blnt', 'g2o3', '807.2'],
['a', 'nxxx', '3.7'],
['h45', 'cacpp', '61.76'],
['trx', 'v2o5p', '0.81'],
['blnt', 'g2o3', '905.8'],
['a', 'nxxx', '22.4'],
['h45', 'cacpp', '101.2'],
['trx', 'v2o5p', '0.97'],
['blnt', 'g2o3', '10089'],
['a', 'nxxx', '18.2'],
['h45', 'cacpp', '171.89'],
['trx', 'v2o5p', '1.2'],
['blnt', 'g2o3', '10345'],
['a', 'nxxx', '9.7'],
['h45', 'cacpp', '203.7'],
['trx', 'v2o5p', '1.98'],
['blnt', 'g2o3', '10979']],
dtype='|S6')

您可以将数据放入pandas DataFrame

In [86]: df = pd.DataFrame (data, columns=y[0][:3])

In [87]: df
Out[87]:
Formula Phase Value
0 a nxxx 3.2
1 h45 cacpp 45.2
2 trx v2o5p 0.24
3 blnt g2o3 807.2
4 a nxxx 3.7
5 h45 cacpp 61.76
6 trx v2o5p 0.81
7 blnt g2o3 905.8
8 a nxxx 22.4
9 h45 cacpp 101.2
10 trx v2o5p 0.97
11 blnt g2o3 10089
12 a nxxx 18.2
13 h45 cacpp 171.89
14 trx v2o5p 1.2
15 blnt g2o3 10345
16 a nxxx 9.7
17 h45 cacpp 203.7
18 trx v2o5p 1.98
19 blnt g2o3 10979

关于python - 将元组列表转换为 Pandas 中的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24175369/

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