pandas将列中逗号分隔变成不同列
时间: 2023-07-12 22:51:05 浏览: 199
你可以使用`pandas`中的`str.split()`函数将包含逗号分隔值的列分成多个列。例如,假设你有一个包含逗号分隔值的`data`数据帧和一个名为`col`的列,你可以使用以下代码将其分成多个列:
```python
new_cols = data['col'].str.split(',', expand=True)
data[new_cols.columns] = new_cols
```
这将在`data`数据帧中创建多个新列,每个新列都包含原始列中的一个逗号分隔值。
相关问题
pandas将列中逗号分隔变成不同行
您可以使用 `pandas` 的 `str.split()` 方法将逗号分隔的值转换为列表,然后使用 `explode()` 方法将列表中的每个元素拆分成不同行。
例如,假设您有一个名为 `df` 的数据框,其中包含一个名为 `col` 的列,其中的值是逗号分隔的字符串。则您可以使用以下代码将每个逗号分隔的值拆分成不同行:
```python
import pandas as pd
# 创建示例数据框
data = {'col': ['a,b,c', 'd,e', 'f,g,h']}
df = pd.DataFrame(data)
# 将逗号分隔的值转换为列表
df['col'] = df['col'].str.split(',')
# 将每个列表中的元素拆分成不同行
df = df.explode('col')
print(df)
```
输出结果如下:
```
col
0 a
0 b
0 c
1 d
1 e
2 f
2 g
2 h
```
怎么利用pandas将数组中的每个数组元素变成以逗号分隔数据的数组
可以使用 pandas 库中的 Series 和 apply 方法,将每个数组元素变成以逗号分隔数据的数组。例如,假设有一个元素为数组的一维数组:
```
import pandas as pd
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr_flat = arr.flatten()
print(arr_flat)
```
输出:
```
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
```
现在我们将每个数组元素变成以逗号分隔数据的数组:
```
# 将一维数组转化为 pandas 的 Series 对象
s = pd.Series(arr_flat)
# 定义 lambda 函数,将每个数组元素转化为以逗号分隔数据的字符串
to_csv_string = lambda x: ','.join(map(str, x))
# 使用 apply 方法调用 lambda 函数,将每个数组元素转化为以逗号分隔数据的字符串
s_csv = s.apply(to_csv_string)
# 输出结果
print(s_csv.values)
```
输出:
```
array(['1,2,3', '4,5,6', '7,8,9'], dtype=object)
```
其中,`to_csv_string` 函数将每个数组元素转化为以逗号分隔数据的字符串,`s.apply(to_csv_string)` 将这个函数应用到 Series 的每个元素上,返回一个元素为字符串的 Series,最后使用 `.values` 将其转化为元素为数组的一维数组。
阅读全文