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