我有一個資料框dfA,其中有一列diff,其中每個值都是一個數字,例如:
dfA['diff']
輸出:
88 -120.0
89 -130.0
90 -105.0
91 -115.0
92 -120.0
93 -110.0
94 -120.0
95 -115.0
96 -120.0
97 -105.0
98 -130.0
99 -115.0
100 -115.0
101 120.0
102 -155.0
103 115.0
104 -150.0
105 -190.0
106 140.0
107 170.0
108 -240.0
109 115.0
110 -160.0
111 -125.0
112 -110.0
115 -205.0
116 150.0
117 -155.0
118 115.0
Name: diff, dtype: float64
我想要:
- 去掉小數
diff如果是正數,則在前面添加 號- 最后轉換為字串
例子:
88 -120
89 -130
90 -105
91 -115
92 -120
93 -110
94 -120
95 -115
96 -120
97 -105
98 -130
99 -115
100 -115
101 120
102 -155
103 115
104 -150
105 -190
106 140
107 170
108 -240
109 115
110 -160
111 -125
112 -110
115 -205
116 150
117 -155
118 115
我已經嘗試使用該
int()功能,但我收到了TypeError: cannot convert the series to <class 'int'>我不確定如何將“ ”號添加到正數
我知道那
dfA['diff'] = dfA['diff'].apply(str)是字串轉換部分
請幫忙,謝謝!
uj5u.com熱心網友回復:
將值轉換為整數并將字串轉換為輔助 Series s,因此可以將原始列0與Series.maskprepend進行比較 :
s = dfA['diff'].astype(int).astype(str)
dfA['diff'] = s.mask(dfA['diff'].gt(0), ' ' s)
print (dfA)
diff
98 -130
99 -115
100 -115
101 120
102 -155
103 115
104 -150
帶格式:
dfA['diff'] = dfA['diff'].map(lambda x: '{0: }'.format(int(x)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/452323.html
