如何是同pandas提取表格中的金额数字,金额有中文和数字,如一百万,10000,一百余万元,156万等数字,统一变成数字
时间: 2023-11-26 07:04:37 浏览: 53
你可以使用 Python 中的 re (正则表达式) 模块来提取表格中的金额数字。具体步骤如下:
1. 先将中文金额转化为数字金额。你可以使用第三方库 cn2an,它可以将中文数字转换为阿拉伯数字。安装方法:`pip install cn2an`。
```
import cn2an
# 将中文金额转化为数字金额
def cn2num(text):
result = re.findall(r'[\u4e00-\u9fa5]+', text) # 找到所有中文
for word in result:
num = cn2an.cn2an(word, 'smart')
text = text.replace(word, str(num))
return text
```
2. 使用正则表达式提取数字金额。你可以使用 re 的 findall 方法来找到所有的金额数字。
```
import re
# 提取数字金额
def extract_money(text):
text = cn2num(text) # 将中文金额转化为数字金额
result = re.findall(r'\d+\.*\d*', text) # 找到所有数字
return result
```
这样,你就可以得到表格中所有的金额数字了。
相关问题
pandas中如何对带有‘元’和‘万元’的金额数据进行处理
可以先用字符串替换方法将‘元’和‘万元’替换为空字符串,然后再根据需要将数据类型转换为float,可以使用pandas的apply方法来实现这一操作。具体代码如下:
```
import pandas as pd
# 创建一个带有‘元’和‘万元’的金额数据
data = {'money': ['10元', '20万元', '50元', '100万元']}
df = pd.DataFrame(data)
# 使用apply方法进行处理
df['money'] = df['money'].apply(lambda x: float(x.replace('元', '').replace('万元', ''))*10000 if '万元' in x else float(x.replace('元', '')))
# 输出处理后的数据
print(df)
```
处理后的输出结果如下:
```
money
0 10000.0
1 2000000.0
2 50.0
3 1000000.0
```
通过上述代码可以看到,我们成功地将带有‘元’和‘万元’的金额数据进行了处理,并将它们转换为以元为单位的浮点类型数据。
pandas提取某一列有规律的数字
假设有一个DataFrame df,其中有一列数据如下:
```
col
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
```
如果要提取这一列中的偶数,可以使用如下代码:
```python
df[df['col'] % 2 == 0]['col']
```
输出结果为:
```
1 2
3 4
5 6
7 8
9 10
11 12
Name: col, dtype: int64
```
同理,如果要提取这一列中的奇数,可以使用如下代码:
```python
df[df['col'] % 2 == 1]['col']
```
输出结果为:
```
0 1
2 3
4 5
6 7
8 9
10 11
Name: col, dtype: int64
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)