ska*_*asa 2 python data-analysis python-3.x pandas
我有一个大数据集(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 -
Run Code Online (Sandbox Code Playgroud)
对于这些值,首选输出是:
salary
0 200
1 400
2 400
3 600
4 0
Run Code Online (Sandbox Code Playgroud)
该0真的可以是任何填充物的价值,我只是选择0。
这是一种使用方法 apply
In [111]: df = pd.DataFrame({'salary': ['200 - 300', '400', '400-500', '600', '-']})
In [112]: df['salary'].apply(lambda x: x.split('-')[0].strip()).replace('', '0').astype(int)
Out[112]:
0 200
1 400
2 400
3 600
4 0
Name: salary, dtype: int32
Run Code Online (Sandbox Code Playgroud)
另一个,使用regex和字符串方法。
In [134]: df['salary'].str.extract('(\d+)', expand=True).fillna(0)
Out[134]:
0
0 200
1 400
2 400
3 600
4 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1208 次 |
| 最近记录: |