python - Python Dataframes:如何删除某些字符并更改数据类型?
问题描述
我正在使用类似于
id year losses revenue expenses
2 2015 $400,000 $- $230,000
1 2017 $- $750,000 $12,000
3 2011 $- $1,200,000 $750,000
1 2012 $150,000 $250,000 $120,000
2 2006 $120,000 $14,000 $3,000
4 2008 $- $350,000 $120,000
5 2019 $5,000 $- $-
4 2001 $12,000 $- $7,500
4 2004 $50,000 $450,000 $10,000
我想要的结果是按id
列分组并找到每列的平均值。的值$-
应该被简单地忽略。
id losses revenue expenses
2 400,000 14,000 116,500
1 150,000 500,000 66,000
3 - 1,200,000 750,000
4 31,000 400,000 45,833
5 5,000 - -
我首先尝试$
从losses
列中删除
df['losses'] = [x.lstrip('$') for x in df['losses']]
但它似乎没有做任何事情。我运行它时没有收到错误,但美元符号仍然存在。我希望$
从losses
revenue
和expenses
列中删除。然后我会将它们转换为整数数据类型,以便我可以分组id
并通过使用找到列的平均值
df.groupby('id')['losses', 'revenue', expenses'].mean().reset_index()
解决方案
首先我们需要在这里将会计号码转换为数字replace
,然后我们groupby
df.replace({'[\$,]': '','-':np.nan},regex=True).astype(float).groupby('id').mean().drop('year',1)
losses revenue expenses
id
1.0 150000.0 500000.0 66000.000000
2.0 260000.0 14000.0 116500.000000
3.0 NaN 1200000.0 750000.000000
4.0 31000.0 400000.0 45833.333333
5.0 5000.0 NaN NaN
推荐阅读
- android - 自定义列表视图适配器中的 AlertDialog.Builder 未显示
- erlang - 在 IEx Ports 的标准错误中强制回车?
- build - 如果我在 CMakeLists.txt 中找到_package,我必须在我安装的 config.cmake 中找到_dependency 吗?
- c# - XML 文档中的反序列化错误 (2,2)
- swift - 解雇后取消初始化 ViewController?
- python-3.x - 如何等到使用 Selenium 和 Python 定义 src 属性
- typescript - 推断数组值的联合不能按预期工作
- kubernetes - 如何配置 KubernetesClient 以连接到 AWS EKS ckluster
- css - Bootstrap 轮廓按钮 - 单击时保持背景颜色
- python - 如何正确地将 lambda 函数应用于数据框列?