python - 数据帧值预处理 - readexcel 在导入期间在值中删除撇号或在导入后将字符串转换为 int 值的其他方式
问题描述
我有一个具有以下数据格式的 excel 文件要导入数据框中。
我当前的代码允许我将图片中显示的确切行提取到数据框中。
df_gdp = pd.read_excel (open(gdp_path,'rb'), sheet_name='T2', skiprows= 5, skipfooter= 29)
问题:上面显示的值是作为字符串导入的,开头和结尾的撇号不显示。
当我尝试使用以下方法将值转换为 int 时,它不起作用。
df_gdp.iloc[1:, 1] = df_gdp.iloc[1:, 0].str.replace("'", "").astype(float)
or
b1 = df_gdp.iloc[:, 54:61].values.astype(float)
ValueError:无法将字符串转换为浮点数:'384,870.3'
我可能在我的代码中遗漏了一些东西,我应该在导入期间早先在我的 readexcel 中添加一些东西,但我不知道该怎么做。
我查找了 readexcel 的 dtype 参数,但找不到有关如何声明特定范围的列以在导入期间转换为 int 的示例。我找到的示例如下所示:
pd.read_excel('tmp.xlsx', index_col=0, dtype={'Name': str, 'Value': float})
我的数据有太多年被创建为单独声明的列,有出路吗?
转换后我想要的 numpy 数组输出如下(不是 ['69124.4' ....]):
[ 69124.4 63585.4 51331.7 174596.4 183850.7 -107672.4 49833.8
120578.6 40884.1 106405. 126586.1 94867.2 22184.3 100575.9
110966.1 52548.9 243641.7]
解决方案
推荐阅读
- listview - 在 Flutter 中的 SimpleDialog 内将项目添加到 ListView
- excel - 当按下回车键时,当前单元格的 VBA 代码适用于下面的单元格,而不是当前单元格
- jsf - 使用非 ajax 请求更新 JSF 视图
- javascript - Firebase 云功能在所有功能运行之前完成
- autohotkey - 即使用户已经登录,通过自动热键运行 URL 也会重定向到空白登录页面
- r - 按百分比拆分
- c# - 如何使用更新在我的游戏中正确使用鼠标
- c - 这些有什么区别?
- c# - EF Core - What is the correct configuration?
- laravel - laravel blade syntax for loop how to call iteration index inside laravel helper functions