dataframe 中的某一列提取出数字转化为int形式
时间: 2023-08-11 07:20:13 浏览: 256
要将DataFrame中的某一列中的数字提取出来并转换为int类型,可以使用`pandas.Series.str.extract()`方法和`pandas.Series.astype()`方法。
假设你的DataFrame中有一个名为`text`的列,其中包含一些文本和数字。你可以使用正则表达式来从这一列中提取数字,并将其转换成int类型。以下是一个例子:
```python
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'text': ['abc123', 'def45', 'ghi678']})
# 从'text'列中提取数字,并将其转换为int类型
df['text'] = df['text'].str.extract('(\d+)').astype(int)
# 打印DataFrame
print(df)
```
这会将'text'列中的所有数字提取出来,并将它们转换为int类型。在这个例子中,输出将是:
```
text
0 123
1 45
2 678
```
请注意,这只会将文本中的第一个数字提取出来。如果你需要提取多个数字,你可以使用正则表达式中的`findall()`函数。例如,如果'text'列中有多个数字,你可以使用以下代码:
```python
import pandas as pd
# 创建DataFrame
df = pd.DataFrame({'text': ['abc123def45', 'ghi678jkl910']})
# 从'text'列中提取所有数字,并将它们转换为int类型
df['text'] = df['text'].str.findall('\d+').apply(lambda x: [int(i) for i in x])
# 打印DataFrame
print(df)
```
这会将'text'列中的所有数字提取出来,并将它们转换为int类型的列表。在这个例子中,输出将是:
```
text
0 [123, 45]
1 [678, 910]
```
阅读全文