【发布时间】:2017-06-26 17:21:05
【问题描述】:
我有一个大数据集(appx 1GB,例如,在字符串“20000-30000”中给出了一列工资范围。我想删除连字符后的所有内容并转换为浮点数。但这并不总是在那里,所以我还需要有一些条件来检查它是否在那里。
有没有一种快速的 Pandas 方法可以做到这一点,而不是遍历整个列来单独转换每个列?我觉得肯定有,因为这似乎是一个常见问题,但是类似的问题并不能解决大型数据集的问题。
输入示例如下:
df = pd.DataFrame({'salary': ['200 - 300', '400', '400-500', '600', '-']})
df
Out:
salary
0 200 - 300
1 400
2 400-500
3 600
4 -
对于这些值,首选输出是:
salary
0 200
1 400
2 400
3 600
4 0
0 真的可以是任何填充值,我刚刚选择了0。
【问题讨论】:
-
您能否显示该列的示例数据,显示带有连字符的字符串和没有连字符的字符串之间的区别。并且,这两种情况的预期输出。在没有看到数据的情况下,我假设
df['salary'].apply(lambda x: x.split('-')[0]).astype(int)应该适合你。
标签: python python-3.x pandas data-analysis