我有一个奇怪的问题。我在一个数据帧中有一个索引和一堆列。我希望索引是一个键,所有其他列都在列表中。这里有一个的例子
df:
0 1 2 3
Barker Minerals Ltd
Blackout Media Corp
Booking Holdings Inc Booking Holdings Inc Booking Holdings Inc 4.10 04/13/2025 BOOKING HOLDINGS INC
Baker Hughes Company Baker Hughes Company BAKER HUGHES A GE COMPANY LLC-3.34%-12-15-2027 BAKER HUGHES A GE COMPANY LLC-3.14%-11-7-2029
Bank of Queensland Limited Bank of Queensland Limited Bank of Queensland Limited FRN 10-MAY-2026 3.50% 05/10/26 Bank of Queensland Limited FRN 26-OCT-2020 1.27% 10/26/20 Bank of Queensland Limited FRN 16-NOV-2021 1.12% 11/16/21
如果我执行这个命令,当我希望它是列表的dict时,它会将所有内容都变成列表:
df.to_numpy().tolist()
我想要一个dict,每个键都有其他列中的值列表(有点像这样(:
{
Barker Minerals Ltd:
Blackout Media Corp:
Booking Holdings Inc: [Booking Holdings Inc ,Booking Holdings Inc 4.10 04/13/2025,BOOKING HOLDINGS INC]
Baker Hughes Company: [Baker Hughes Company ,BAKER HUGHES A GE COMPANY LLC-3.34%-12-15-2027,BAKER HUGHES A GE COMPANY LLC-3.14%-11-7-2029]
Bank of Queensland Limited: [Bank of Queensland Limited ,Bank of Queensland Limited FRN 10-MAY-2026 3.50% 05/10/26,Bank of Queensland Limited FRN 26-OCT-2020 1.27% 10/26/20, Bank of Queensland Limited FRN 16-NOV-2021 1.12% 11/16/21]
}
这样做可能吗?
Michael Szczesny评论中指出的最简单的答案:
df.T.to_dict(orient="list")
输出:
{'Barker Minerals Ltd': [nan, nan, nan, nan],
'Blackout Media Corp': [nan, nan, nan, nan],
'Booking Holdings Inc': ['Booking Holdings Inc',
'Booking Holdings Inc 4.10 04/13/2025',
'BOOKING HOLDINGS INC',
nan],
'Baker Hughes Company': ['Baker Hughes Company',
'BAKER HUGHES A GE COMPANY LLC-3.34%-12-15-2027',
'BAKER HUGHES A GE COMPANY LLC-3.14%-11-7-2029',
nan],
'Bank of Queensland Limited': ['Bank of Queensland Limited',
'Bank of Queensland Limited FRN 10-MAY-2026 3.50% 05/10/26',
'Bank of Queensland Limited FRN 26-OCT-2020 1.27% 10/26/20',
' Bank of Queensland Limited FRN 16-NOV-2021 1.12% 11/16/21']}
此外,如果您想丢失所有nan
,则代码如下:
df = pd.read_csv("df_to_dict.csv", index_col=0)
val = df.T.to_dict(orient="list")
cleaned_val = {}
for i in val:
cleaned_val[i] = [j for j in val[i] if str(j)!="nan"]
cleaned_val
输出如下:
{'Barker Minerals Ltd': [],
'Blackout Media Corp': [],
'Booking Holdings Inc': ['Booking Holdings Inc',
'Booking Holdings Inc 4.10 04/13/2025',
'BOOKING HOLDINGS INC'],
'Baker Hughes Company': ['Baker Hughes Company',
'BAKER HUGHES A GE COMPANY LLC-3.34%-12-15-2027',
'BAKER HUGHES A GE COMPANY LLC-3.14%-11-7-2029'],
'Bank of Queensland Limited': ['Bank of Queensland Limited',
'Bank of Queensland Limited FRN 10-MAY-2026 3.50% 05/10/26',
'Bank of Queensland Limited FRN 26-OCT-2020 1.27% 10/26/20',
' Bank of Queensland Limited FRN 16-NOV-2021 1.12% 11/16/21']}
to_dict()
的文档可在此处访问。