Kev*_*vin 4 python string dataframe pandas
我一直在尝试在数据框中的列中添加百分号,但无济于事.有人有任何想法吗?
import pandas as pd
names = ('jimmy', 'red', 'julie', 'brad', 'oranges')
score = (82, 38 , 55, 19, 33)
df = pd.DataFrame({'Name': names, 'Grade': score})
df
Out[20]:
Grade Name
0 82 jimmy
1 38 red
2 55 julie
3 19 brad
4 33 oranges
Run Code Online (Sandbox Code Playgroud)
我做了很多尝试,但似乎没有任何结果.这是一次失败的尝试:
df['Percent'] = str(df['Grade']) + '%'
df['Percent']
Out[22]:
0 0 82\n1 38\n2 55\n3 19\n4 33\nN...
1 0 82\n1 38\n2 55\n3 19\n4 33\nN...
2 0 82\n1 38\n2 55\n3 19\n4 33\nN...
3 0 82\n1 38\n2 55\n3 19\n4 33\nN...
4 0 82\n1 38\n2 55\n3 19\n4 33\nN...
Name: Percent, dtype: object
Run Code Online (Sandbox Code Playgroud)
EdC*_*ica 13
铸dtype于str使用astype:
In [11]:
df['Percent'] = df['Grade'].astype(str) + '%'
df
Out[11]:
Grade Name Percent
0 82 jimmy 82%
1 38 red 38%
2 55 julie 55%
3 19 brad 19%
4 33 oranges 33%
Run Code Online (Sandbox Code Playgroud)
您尝试的只是将列转换为字符串化版本的Series:
In [12]:
str(df['Grade'])
Out[12]:
'0 82\n1 38\n2 55\n3 19\n4 33\nName: Grade, dtype: int32'
Run Code Online (Sandbox Code Playgroud)
小智 5
我发现最简单的方法是:
df['Percent'] = df['Grade'].map("{:,.2f}%".format)
Run Code Online (Sandbox Code Playgroud)