簡體   English   中英

Python字典到Pandas數據框,列表為值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM