python正在将数据帧转换为列表

2024-05-26 14:21:46 发布

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

我有一个excel,有两个数据框,一个数据框在记分卡上,另一个数据框在合并的基础上

import pandas as pd
df_scr_crd = {'Subject': ['MATH', 'MATH', 'MATH', 'MATH', 'PSY', 'PSY', 'PSY', 'PSY'], 
        'SCR_STRT': [10, 20, 30, 99999, 'A', 'B', 'C', 'D'], 
        'POINTS': [100, 200, 300, 500, 10, 20, 30, 40]}
df_scr_crd_d = pd.DataFrame(df_scr_crd, columns = ['Subject', 'SCR_STRT', 'POINTS'])

df_scr_cns = {'Subject': ['MATH', 'PSY'], 
        'CNS': ['min', 'max']}
df_scr_cns_d = pd.DataFrame(df_scr_cns, columns = ['Subject', 'CNS'])

df_scr_crd_d
df_scr_cns_d

我想从这个数据框生成列表/变量赋值

预期输出为

MATH_df_scr_crd_bin = [10, 20, 30, 99999]
MATH_df_scr_crd_val = [100, 200, 300, 500]
PSY_df_scr_crd_bin = ['A', 'B', 'C', 'D']
PSY_df_scr_crd_val = [10, 20, 30, 40]
MATH_df_scr_cns = 'min'
MATH_df_scr_cns = 'max'

有什么简单的方法可以把数据框转换成列表吗?你知道吗

Thx提前 卵黄


Tags: columns数据dataframedfmathpointspdsubject
1条回答
网友
1楼 · 发布于 2024-05-26 14:21:46

您只需在相关系列上使用.tolist(),例如:

>>> df_scr_crd_d.loc[df_scr_crd_d.Subject == 'MATH', 'SCR_STRT'].tolist()
[10, 20, 30, 99999]

>>> df_scr_crd_d.loc[df_scr_crd_d.Subject == 'MATH', 'POINTS'].tolist()
[100, 200, 300, 500]

对于整个数据帧,您可以将其转换为按以下方式键入列名的字典:

>>> df_scr_crd_d.to_dict('list') 
{'POINTS': [100, 200, 300, 500, 10, 20, 30, 40],
 'SCR_STRT': [10, 20, 30, 99999, 'A', 'B', 'C', 'D'],
 'Subject': ['MATH', 'MATH', 'MATH', 'MATH', 'PSY', 'PSY', 'PSY', 'PSY']}

相关问题 更多 >

    热门问题