Pandas 数据框到 python 字典,相关列名作为字典值存储在列表中
Pandas dataframe to python dictionary with relevant column names stored in list as dict values
我正在尝试从 pandas 数据框中获取数据并将其转换为所需的字典。这是数据示例:
data =[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1],[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2]]
Utable = pd.DataFrame(data, columns =['Type1', 'Type2', 'Type3', 'Type4', 'Type5', 'Type6', 'Type7', 'Type8', 'ID'])
我需要的字典是作为字典键的 ID 记录,值需要是从列名中确定的不可接受类型#s 的列表。如果类型为 0.0,则类型是不可接受的。所以对于这个例子,输出将是:
{1: [1, 2, 3, 4, 5, 6, 7, 8], 2: [1, 2, 4, 5, 6, 7, 8]}
我可以弄清楚如何使用以下方法将类型值存储为列表,并将 ID 作为字典键:
U = Utable.set_index('ID').T.to_dict('list')
给出:
{1: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 2: [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0]}
但我不知道如何从存储在列表中的列名中获取内容作为字典值。
非常感谢您的帮助。
转字典时可以使用参数orient=index
;然后使用列表理解来获取所需的列表作为值:
out = {k: [int(i[-1]) for i, v in d.items() if v==0]
for k, d in Utable.set_index('ID').to_dict('index').items()}
输出:
{1: [1, 2, 3, 4, 5, 6, 7, 8], 2: [1, 2, 4, 5, 6, 7, 8]}
我正在尝试从 pandas 数据框中获取数据并将其转换为所需的字典。这是数据示例:
data =[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1],[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2]]
Utable = pd.DataFrame(data, columns =['Type1', 'Type2', 'Type3', 'Type4', 'Type5', 'Type6', 'Type7', 'Type8', 'ID'])
我需要的字典是作为字典键的 ID 记录,值需要是从列名中确定的不可接受类型#s 的列表。如果类型为 0.0,则类型是不可接受的。所以对于这个例子,输出将是:
{1: [1, 2, 3, 4, 5, 6, 7, 8], 2: [1, 2, 4, 5, 6, 7, 8]}
我可以弄清楚如何使用以下方法将类型值存储为列表,并将 ID 作为字典键:
U = Utable.set_index('ID').T.to_dict('list')
给出:
{1: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 2: [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0]}
但我不知道如何从存储在列表中的列名中获取内容作为字典值。
非常感谢您的帮助。
转字典时可以使用参数orient=index
;然后使用列表理解来获取所需的列表作为值:
out = {k: [int(i[-1]) for i, v in d.items() if v==0]
for k, d in Utable.set_index('ID').to_dict('index').items()}
输出:
{1: [1, 2, 3, 4, 5, 6, 7, 8], 2: [1, 2, 4, 5, 6, 7, 8]}