簡體   English   中英

將dicts列表轉換為Pandas數據幀

[英]Converting a list of dicts to a Pandas dataframe

我有一個Python dict列表,每個都有相同的鍵,

dict_keys= ['k1','k2','k3','k4','k5','k6'] # More like 30 keys in practice
data = []
for i in range(20): # More like 3000 in practice
    data.append({k: np.random.randint(100) for k in dict_keys}) 

並希望用它來創建一個帶有密鑰子集的相應Pandas數據幀。 我目前的方法是一次從列表中取出每個dict並使用它將其附加到數據幀

df = pd.DataFrame(columns=['k1','k2','k5','k6'])
for d in data:
    df = df.append({k: d[k] for k in list(df.columns)}, ignore_index=True)
    # In practice, there are some calculations on some of the values here

但這非常慢 (實際列表,它包含的詞組,都非常大)。

是否有更好,更快(更慣用)的方法來迭代字典列表並將它們作為行添加到Pandas數據幀中?

只需將data傳遞給DataFrame__init__ ,或傳遞給DataFrame.from_records (兩者都可以)。

您可能還想設置索引,例如DataFrame.from_records(data, index = 'k1')

如果您還需要執行一些計算,那么在創建DataFrame之后,在DataFrame上執行它通常會更容易也更方便。 利用熊貓!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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