4Manuals

  • PDF Cloud HOME

我可以转换列表中数据帧的每个唯一ID吗? Download

    如何将文本边界框与pyplot.Rectangle对齐? 导入类问题 在Python数据框中选择列时出错 使用Rabbit的pika确认消息 如何在按住键的同时暂停VideoStream? Python OpenCV TypeError:无法处理此数据类型 使用buildozer不会下载sdl2_image SMTPSenderRefused,421,超出超时 Tensorflow多线程推理比单线程推理慢 关于python中变量的困惑。 python如何使用变量?

我有这样的数据框

| ID   | M001 | M002 | M003 | M004 |
|------|------|------|------|------|
| E001 | 3    | 4    | 3    | 2    |
| E002 | 4    | 5    | 5    | 3    |
| E003 | 4    | 3    | 5    | 4    |

我想在列表中输出,但是对于每个唯一的ID这样的东西,例如E001,E002,我想在每个M001,M002等中列出其响应列表

我需要的输出是针对不同id的不同变量,可以说 E001_response = [["M001",3],["M002",4],["M003",3],["M004",2]]

2 个答案:

答案 0 :(得分:0)

类似的东西:

new_df = df.apply(lambda x: list(zip(df.columns, x)), axis=1)

输出:

ID
E001    [(M001, 3), (M001, 4), (M001, 3), (M001, 2)]
E002    [(M002, 4), (M002, 5), (M002, 5), (M002, 3)]
E003    [(M003, 4), (M003, 3), (M003, 5), (M003, 4)]
dtype: object

答案 1 :(得分:0)

您可以使用具有自定义lambda函数的列表来创建系列:

s = df.set_index('ID').apply(lambda x: list(map(list,zip(df.columns[1:], x))), 1)
print (s)
ID
E001    [[M001, 3], [M002, 4], [M003, 3], [M004, 2]]
E002    [[M001, 4], [M002, 5], [M003, 5], [M004, 3]]
E003    [[M001, 4], [M002, 3], [M003, 5], [M004, 4]]
dtype: object

然后可以使用globals,但最好不要按名称创建变量

for k, v in s.items():
     globals()[f'{k}_response'] = v

print (E001_response)
[['M001', 3], ['M002', 4], ['M003', 3], ['M004', 2]]

更好的方法是创建字典:

d = s.to_dict()
print (d)
{'E001': [['M001', 3], ['M002', 4], ['M003', 3], ['M004', 2]],
 'E002': [['M001', 4], ['M002', 5], ['M003', 5], ['M004', 3]], 
 'E003': [['M001', 4], ['M002', 3], ['M003', 5], ['M004', 4]]}

print (d['E001'])
[['M001', 3], ['M002', 4], ['M003', 3], ['M004', 2]]



Similar searches
    如何将df.loc []应用于多行并应用转换? 在Ionic复选框上设置值并将其保存在存储器中-Ionic 4 无法打开整合源文件 如何应用嵌套子查询?对于前。选择语句中的选择语句 MSSQL获取日期时间变量-Swift