我有以下被分箱的熊貓資料框col1(分箱是熊貓分箱的結果):
d = {'col1': ['(-99999.0, -99998.0)', '(-99998.0, 1.0)','(1.0, 10.0)']}
df = pd.DataFrame(data=d)
print(df)
資料集如下所示:
col1
0 (-99999.0, -99998.0)
1 (-99998.0, 1.0)
2 (1.0, 10.0)
我需要對分箱列進行逆向工程,以便獲得一個名為的串列myBinner,如下所示:
myBinner = [-99998,1,10]
我該怎么做?
uj5u.com熱心網友回復:
甚至更短:
myBinner = [b[1] for b in pd.eval(df['col1'])]
uj5u.com熱心網友回復:
您可以使用np.ravel和np.unique:
import numpy as np
myBinner = np.unique(np.ravel(pd.eval(df['col1'])))[1:].tolist()
print(myBinner)
# Output
[-99998.0, 1.0, 10.0]
uj5u.com熱心網友回復:
您還可以映射ast.literal_eval并使用串列推導來過濾:
import ast
myBinner = [x for _, x in map(ast.literal_eval, df['col1'])]
輸出:
[-99998.0, 1.0, 10.0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/425629.html
上一篇:在尋找其他值時更改json中的值
下一篇:繪制r中資料的統計資訊
