用Pandas做元组

2024-05-19 16:11:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面提到的熊猫名单。你知道吗

[post_code  bnf_name                          
 B11 4BW    Salbutamol_Inha 100mcg (200 D) CFF    0.031059
 B12 9LP    Paracet_Tab 500mg                     0.024014]

我需要将此数据转换为以下格式(元组列表):

[("B11 4BW", "Salbutamol_Inha 100mcg (200 D) CFF", 0.0310589063)
 ("B12 9LP", "Paracet_Tab 500mg",0.024014)]

我尝试过将列表转换成dataframe和其他方法,但直到现在都没有成功。有人能帮忙吗?你知道吗


Tags: 数据name列表格式codeposttab名单
3条回答

我认为有MultiIndex Series,因此必须首先^{},然后转换为列表,最后转换为元组:

如果需要,也可以从Series添加索引[0]列表中选择Series

L = [tuple(x) for x in df[0].reset_index().values.tolist()]

或:

L = list(map(tuple, df[0].reset_index().values.tolist()))

print (L)
[('B11 4BW', 'Salbutamol_Inha 100mcg (200 D) CFF', 0.031058999999999996), 
 ('B12 9LP', 'Paracet_Tab 500mg', 0.024013999999999997)]

通过熊猫,你可以做到这一点,以获得预期的结果

解决方案

import pandas as pd
data = pd.Series(["B11 4BW", "Salbutamol_Inha 100mcg (200 D) CFF", "0.031059"],["B12 9LP", "Paracet_Tab 500mg", "0.024014"])
result = list(zip(data,data.index))
print(result)

结果

[('B11 4BW', 'B12 9LP'),
 ('Salbutamol_Inha 100mcg (200 D) CFF', 'Paracet_Tab 500mg'),
 ('0.031059', '0.024014')]

如果有任何查询意见如下。你知道吗

检查to_dict

[(x[0][0],x[0][1],x[1]) for x in s.to_dict().items()]
[('B12 9LP', 'Paracet_Tab 500mg', '0.024014'), ('B11 4BW', 'Salbutamol_Inha 100mcg (200 D) CFF', '0.031059')]

相关问题 更多 >