python - 如何翻转一列比率,转换为分数并转换为浮点数
问题描述
我有以下数据框:
Date Ratio
0 2000-06-21 4:1
1 2000-06-22 3:2
2 2000-06-23 5:7
3 2000-06-24 7:1
对于Ratio
列中的每个项目,我想反转比率,将其转换为分数并将其转换为浮点数。
意思是 4:1 会变成 1:4,然后 : 会被替换成 /,最后会得到 0.25。3:2 将变为 2/3,即转换为 0.66666666666。
到目前为止,我只有以下代码:
df['Ratio'] = df['Ratio'].str.split(":")
解决方案
DataFrame
用expand=True
in创建新的Series.str.split
,转换为整数并最后除列:
df1 = df['Ratio'].str.split(":", expand=True).astype(int)
df['Ratio'] = df1[1].div(df1[0])
对于一条线的解决方案是可能的使用DataFrame.set_axis
和DataFrame.eval
:
df['Ratio'] = (df['Ratio'].str.split(":",expand=True)
.astype(int)
.set_axis(['a','b'], inplace=False, axis=1)
.eval('b/a'))
print (df)
Date Ratio
0 2000-06-21 0.250000
1 2000-06-22 0.666667
2 2000-06-23 1.400000
3 2000-06-24 0.142857
推荐阅读
- r - R包“DistributionUtils”安装错误
- javascript - keyup 事件仅从第一个输入中获取值,其中多个在具有相同名称和 id 的表中可用
- azure-powershell - 在 Win Server 2012 R2 上远程升级 PowerShell 版本
- spring - Post Request 的 API 版本控制的错误 Header 不来handleNoHandlerFoundException?
- php - errno: 150 "外键约束格式不正确")
- npm - 如何解决 Azure Pipeline 错误:Npm failed with return code: 1, npm install task。SyntaxError:在附近解析时 JSON 输入意外结束
- reactjs - 条件导航栏?
- three.js - three.js mousepick(raycaster)不适用于加载的模型
- ruby-on-rails - 方法 sort_by 已弃用 - 可能的解决方案?
- matplotlib - 如何用西里尔文的 TEX 代码渲染 Matplotlib 绘图