我有以下資料要轉換為熊貓資料框 輸入
my_dict = {'table_1': [{'columns_1': 148989, 'columns_2': 437643}], 'table_2': [{'columns_1': 3344343, 'columns_2': 9897833}]}
預期產出
table_name columns_1 columns_2
table_1 148989 437643
table_2 3344343 9897833
我嘗試了以下方式,但由于回圈,我只能得到最后一個值
def convert_to_df():
for key, value in my_dict.items():
df = pd.DataFrame.from_dict(value, orient='columns')
df['table_name'] = key
return df
我錯過了什么?
uj5u.com熱心網友回復:
只需擺脫這些串列,您就可以直接提供給 DataFrame 建構式:
pd.DataFrame({k: v[0] for k,v in my_dict.items()}).T
輸出:
columns_1 columns_2
table_1 148989 437643
table_2 3344343 9897833
以索引為列:
(pd.DataFrame({k: v[0] for k,v in my_dict.items()})
.T
.rename_axis('table_name')
.reset_index()
)
輸出:
table_name columns_1 columns_2
0 table_1 148989 437643
1 table_2 3344343 9897833
uj5u.com熱心網友回復:
不是最好的方式恕我直言(mozway 的方法更好),但要繼續您嘗試的道路,您需要將 for 回圈的輸出添加到串列中,然后將其連接到 1 個資料幀中。
def convert_to_df():
df_list = [] #Add a list where the output of every loop is added to
for key, value in my_dict.items()
df = pd.DataFrame.from_dict(value, orient='columns')
df['table_name'] = key
df_list.append(df) #Append to the list
df = pd.concat(df_list) # Concat list into dataframe
return df
df = convert_to_df()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/456072.html
