我需要winsorize我的12列數據框中的兩列。假設我有列'A','B','C'和'D',每列都有一系列值。鑑於我已經清理了一些NaN色譜柱,色譜柱的數量從100個減少到了80個,但它們仍然被索引到100個(包括缺失的第5行)。如何在不丟失索引的情況下轉換熊貓數據框?
我想通過winsorize方法只轉換列'A'和'B'。爲此,我必須將我的列轉換爲np.array。
import scipy.stats
df['A','B','C','D'] = #some values per each column
ab_df = df['A','B']
X = scipy.stats.mstats.winsorize(ab_df.values, limits=0.01)
new_ab_df = pd.DataFrame(X, columns = ['A','B'])
df = pd.concat([df['C','D'], new_ab_df], axis=1, join='inner', join_axes=[df.index])
當我轉換爲np.array,然後回pd.DataFrame,它的LEN()是正確的,在80,但我的指標已被重置爲0-> 80。如何確保我的變換「A」和「B」列正確編制索引?我不認爲我可以使用apply(),它將保留索引順序,只需將值替換爲我的方法,即只創建2列的df轉換副本,然後將它們連接到我的其餘部分未轉換的列。
列數從100減少到80,或*行數*? – Alexander