希望你一切順利。我有以下資料幀:
| 日期 | 收入型別 | 麥克風 | 瓊 |
|---|---|---|---|
| 2021/10/31 | 薪水 | 25 | 32 |
| 2021/10/31 | 投資 | 10 | 9 |
| 2021/10/31 | 投資/薪水 | 0,4 | 0,28 |
| 2021/09/30 | 薪水 | 30 | 36 |
| 2021/09/30 | 投資 | 15 | 6 |
| 2021/09/30 | 投資/薪水 | 0,5 | 0,16 |
我想將 Investments / Salary 行號轉換為百分比,如下所示:
| 日期 | 收入型別 | 麥克風 | 瓊 |
|---|---|---|---|
| 2021/10/31 | 薪水 | 25 | 32 |
| 2021/10/31 | 投資 | 10 | 9 |
| 2021/10/31 | 投資/薪水 | 40% | 28% |
| 2021/09/30 | 薪水 | 30 | 36 |
| 2021/09/30 | 投資 | 15 | 6 |
| 2021/09/30 | 投資/薪水 | 50% | 16% |
我已經嘗試了以下但沒有奏效:
df['Mike'] = np.where(df['Income_type']=='Investments/salary',df['Mike'].astype(float).map(lambda n: '{:.2%}'.format(n)),df['Mike'])
有任何想法嗎?
uj5u.com熱心網友回復:
試試這個 :
df.update(
df.loc[df.Income_type =='Investments/Salary'][['Mike','Jordan']]\
.replace(to_replace =',', value = '.', regex = True).astype(float)
)
df.update(df.loc[df.Income_type =='Investments/Salary']['Mike'].map("{:.2%}".format))
df.update(df.loc[df.Income_type =='Investments/Salary']['Jordan'].map("{:.2%}".format))
uj5u.com熱心網友回復:
您可以像這樣使用 lambda 函式。我用合成資料對其進行了測驗:
df.Mike = df.Mike.astype(float)
def make_percentage(x):
if float(x)<1:
return str(float(x)*100) '%'
else: return x
df.Mike = df.Mike.apply(lambda x: make_percentage(x))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/381273.html
下一篇:如何計算熊貓的累積回報?
