pandas 将dataframe一列数据拆分为多列
时间: 2023-09-26 12:09:40 浏览: 110
可以使用 pandas 的 str.split 方法将一列数据按照指定分隔符拆分成多列。
例如,假设有如下数据:
```python
import pandas as pd
data = pd.DataFrame({'A': ['1-2-3', '4-5-6', '7-8-9']})
data
```
输出:
```
A
0 1-2-3
1 4-5-6
2 7-8-9
```
要将列 A 拆分为三列,可以使用如下代码:
```python
data[['B', 'C', 'D']] = data['A'].str.split('-', expand=True)
data = data.drop('A', axis=1)
data
```
输出:
```
B C D
0 1 2 3
1 4 5 6
2 7 8 9
```
以上代码的思路是:
1. 使用 str.split 方法将列 A 按照分隔符 '-' 拆分成多列。
2. 使用 expand=True 参数将拆分后的列转换为 DataFrame。
3. 将新的 DataFrame 按列合并到原始数据中。
4. 删除原始数据中的列 A 列。
这样就可以将一列数据拆分为多列了。
相关问题
pandas 将一列列表数据拆分为多列
可以使用 pandas 的 Series.str 方法,将列表拆分成多列。
例如,假设有如下数据:
```python
import pandas as pd
data = pd.DataFrame({'A': [[1, 2], [3, 4], [5, 6]]})
data
```
输出:
```
A
0 [1, 2]
1 [3, 4]
2 [5, 6]
```
要将列表 A 拆分为两列,可以使用如下代码:
```python
data[['B', 'C']] = pd.DataFrame(data['A'].tolist(), index=data.index)
data = data.drop('A', axis=1)
data
```
输出:
```
B C
0 1 2
1 3 4
2 5 6
```
以上代码的思路是:
1. 将列表 A 转换成 DataFrame,其中每个元素都是一行。
2. 将 DataFrame 和原始数据的索引进行合并,确保每个元素的索引与原始数据的索引相同。
3. 将新的 DataFrame 按行合并到原始数据中。
4. 删除原始数据中的列表 A 列。
这样就可以将列表数据拆分为多列了。
dataframe将一列拆分为多列
可以使用`pandas`库中的`str.split()`方法将一列数据拆分为多列。假设我们有以下的`DataFrame`,其中`name`列中的数据需要拆分:
```python
import pandas as pd
df = pd.DataFrame({'name': ['John Smith', 'Jane Doe', 'Bob Johnson']})
```
我们可以使用`str.split()`方法将`name`列拆分为`first_name`列和`last_name`列:
```python
df[['first_name', 'last_name']] = df['name'].str.split(' ', expand=True)
```
这里的`expand=True`表示将拆分出的多个列扩展为新的列。最终得到的`DataFrame`如下:
```
name first_name last_name
0 John Smith John Smith
1 Jane Doe Jane Doe
2 Bob Johnson Bob Johnson
```
阅读全文