Python 3.x 如何在pct#U变更中添加%x27;结果如何?

Python 3.x 如何在pct#U变更中添加%x27;结果如何?,python-3.x,dataframe,Python 3.x,Dataframe,我们用pct_change函数得到df的A列增长率,如果我期望下面的结果,如何在pct_change的输出中快速添加% import pandas as pd ind = pd.date_range('01/01/2000', periods = 4, freq ='W') df = pd.DataFrame({"A":[14, 4, 5, 4]},index = ind) df.pct_change() A 2000-01-02 N

我们用pct_change函数得到df的A列增长率,如果我期望下面的结果,如何在pct_change的输出中快速添加%

import pandas as pd 
ind = pd.date_range('01/01/2000', periods = 4, freq ='W') 
df = pd.DataFrame({"A":[14, 4, 5, 4]},index = ind) 

df.pct_change()
                    A
2000-01-02        NaN
2000-01-09  -0.714286
2000-01-16   0.250000
2000-01-23  -0.200000
您可以尝试以下方法:

               A
2000-01-02   NaN
2000-01-09  -71%
2000-01-16   25%
2000-01-23  -20%
df['A']

import numpy as np
import pandas as pd 
ind = pd.date_range('01/01/2000', periods = 4, freq ='W') 
df = pd.DataFrame({"A":[None, -0.714286, 0.25, -0.2]},index = ind) 

df.loc[~df['A'].isna(), 'A'] = (df.loc[~df['A'].isna(), 'A']*100).astype(int).astype(str) + '%'

下面是使用ifelse的一种简单方法:

df.loc[~df['A'].isna(), 'A'] = round((df.loc[~df['A'].isna(), 'A']*100),2).astype(str) + '%'

请看,不需要在Dima First代码中导入新模块,如numpy。
df.loc[~df['A'].isna(), 'A'] = round((df.loc[~df['A'].isna(), 'A']*100),2).astype(str) + '%'
df['A'] = (df['A']
           .apply(lambda x: str(round(x, 2))+'%' if not pd.isna(x) else np.nan)
          )