[英]Python dictionary to Pandas data frame with lists as values
我想轉換以下字典:
links = { "a": ["aa", "ab", "ac"], "b": ["ba", "bb", "bc", "bd"] }
到Pandas數據框如:
col_a col_b
a aa
a ab
a ac
b ba
b bb
b bc
b bd
這與Pandas的經典字典有點不同。 有任何想法嗎?
在熊貓0.25.0
pd.Series(links).explode().reset_index()
使用列表(col_a, col_b)
來創建(col_a, col_b)
元組列表,然后使用DataFrame.from_records()
:
records = [(k, i) for k, v in links.items() for i in v]
df = pd.DataFrame.from_records(records, columns=["col_a", "col_b"])
您可以使用列表推導和本機python運算符:
d = [([k]*len(v), v) for k,v in links.items()]
d2 = list(map(lambda x:sum(x, []), zip(*d)))
df = pd.DataFrame(d2).T
df.columns = ['col_a', 'col_b']
您可以先使用from_dict創建一個df,然后轉置它並重新排列和重命名:
(
pd.DataFrame.from_dict(links, orient='index')
.T.stack()
.reset_index(level=0, drop=True)
.sort_index()
.reset_index()
.set_axis(['col_a','col_b'], 1, inplace=False)
)
col_a col_b
0 a aa
1 a ab
2 a ac
3 b ba
4 b bb
5 b bc
6 b bd
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.