簡體   English   中英

如何將循環結果存儲到 dataframe 中?

[英]How to store loop result into a dataframe?

我的數據是從 1994 年到 2022 年。 原始數據視圖

我曾嘗試將 append 循環結果轉換為一個數據幀,但是,它只管理 append 1 個數據。

我如何 go 關於它來存儲所有數據?

def portfolio_allocation (data,breakpoint):
pf = pd.DataFrame()

for i in data.index:
    sort = data.sort_values(by = i , axis = 1)
    sorted_data = sort.loc[i]
    new_data = sorted_data.to_frame()

#  pf_01 = less than 10 percentile
    q10 = np.percentile(sorted_data.values, [10])
    pf_1 = new_data[new_data.values < q10]
    pf_01 = pf.append(pf_1)
return pf_01

我想要的結果:

                1994
              01
stock           
s_1393  0.000003
s_0462  0.000010
s_0678  0.000010
s_1129  0.000014
s_0962  0.000018
...          ...
s_1065  0.003247
s_0766  0.003253
s_0031  0.003272
s_0451  0.003291
s_1600  0.003297

[200 rows x 1 columns]
            1994
              02
stock           
s_1393  0.000003
s_0462  0.000007
s_0678  0.000011
s_0962  0.000016
s_1129  0.000023
...          ...
s_1343  0.003262
s_1207  0.003276
s_1232  0.003322
s_1870  0.003326
s_0557  0.003347

[200 rows x 1 columns]

但是,我只獲得 1994 01。

我無法清楚地回答,因為我沒有你的數據,你想要做什么也不清楚。

但我的建議是將循環中的最后一行更改為pf = pf.append(pf_1)

和 function 中的最后一行return pf

由於您沒有使用一開始初始化的pf變量。

編輯:

另外,如果我沒記錯的話, pd.append已被棄用,所以你最好使用pd.concat

暫無
暫無

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

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