Pandas read_excel 百分比作为字符串

gui*_*123 7 python pandas

我的 Excel 工作表有一列用百分比符号存储的百分比(例如“50%”)。如何强制pandas.read_excel读取字符串“50%”而不是将其转换为浮点数?

目前该read_excel实现将百分比解析为浮点数 0.5。此外,如果我添加一个converter = {col_with_percentage: str}参数,它会将其解析为字符串“0.5”。有没有办法读取原始百分比值(“50%”)?

Ste*_*uch 8

您可以使用转换器传递您自己的函数。制作字符串(例如:50%)的东西可能看起来像:

代码:

def convert_to_percent_string(value):
    return '{}%'.format(value * 100)
Run Code Online (Sandbox Code Playgroud)

测试代码:

import pandas as pd
df = pd.read_excel('example.xlsx', converters={
    'percents': convert_to_percent_string})
print(df)
Run Code Online (Sandbox Code Playgroud)

或者作为 lambda:

df = pd.read_excel('example.xlsx', converters={
    'percents': lambda value: '{}%'.format(value * 100)})
Run Code Online (Sandbox Code Playgroud)

结果:

  percents
0    40.0%
1    50.0%
2    60.0%
Run Code Online (Sandbox Code Playgroud)