我有一個資料框架,其中包含不同公司的m系列股票價格,如下所示:
我有一個資料框架,其中包含不同公司的m系列股票價格。
日期 股票 1 股票2 股票3 ... 股票m
1 100 200 300 ... 500 ...
2 500 300 200 ... 100 100 ...
: : : : ... :
n 200 300 400 ... 100 ...
我需要做的是找出m個股票中哪一個具有最高的變數,然后將其與股票1的條目交換。假設在上述例子中,股票3是具有最高方差的股票,那么最終的輸出結果應該是:
Date Stock 3 Stock 2 Stock 1 ... 股票m
1 300 200 100 ... 500 500 ...
2 200 300 500 ... 100 100 ...
: : : : ... :
n 400 300 200 ... 100 ...
為了找到方差最大的那一列,我試著計算:
print(max(df.var() ) )
然而,這只產生了差異的數量,而沒有列印股票代碼。我怎樣才能解決這個問題?
uj5u.com熱心網友回復:
你可以使用.insert()在你從.idxmax()和Index.get_loc()獲得位置之后,在指定位置插入列:
col = df.set_index('Date').var().idxmax() # get column name of max var
from_pos = df.columns.get_loc(col) # get location of column with max var[/span]。
stock1_col = df.columns[1] # 獲得第一只股票的列名。
stock1 = df.pop(stock1_col) # 取出第一支股票的列名。
df.insert(1, col, df.pop(col) ) # 插入max var列到第一支股票的原始位置。
df.insert(from_pos, stock1_col, stock1) # 將第一支股票插入到最大var列的原始位置。
結果:
(股票m是樣本資料中具有最大方差的那一列)
print(col)
'Stock m'/span>
print(df)
日期 股票m 股票2 股票3 股票1
0 1 500 200 300 100
1 2 100 300 200 500
2 n 100 300 400 200
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/323996.html
標籤:
上一篇:將pandas列換成另一列的值
