用Python实现将dataframe中A/B/C列存在换行符的数据一对一拆分为多行
时间: 2024-05-05 19:16:47 浏览: 170
Python DataFrame一列拆成多列以及一行拆成多行
假设我们有以下的DataFrame:
```python
import pandas as pd
data = {'A': ['a\nb\nc', 'd\ne', 'f\ng\nh'],
'B': ['i\nj', 'k\nl\nm', 'n'],
'C': ['o', 'p\nq\nr', 's\nt']}
df = pd.DataFrame(data)
print(df)
```
输出:
```
A B C
0 a\nb\nc i\nj o
1 d\ne k\nl\nm p\nq\nr
2 f\ng\nh n s\nt
```
我们要实现的目标是将A/B/C列中的换行符`\n`拆分成多行。
我们可以先将每个单元格中的字符串按照`\n`分割成一个列表,然后对这个列表进行操作,最后将操作后的列表再合并成一个字符串。
以下是具体的实现代码:
```python
# 定义一个函数,将字符串中的换行符分割成多行
def split_rows(s):
rows = s.split('\n') # 将字符串按照换行符分割成多行
rows = [row.strip() for row in rows] # 去除每行两端的空格和换行符
rows = [row for row in rows if row] # 去除空行
return rows
# 对DataFrame中的每个单元格应用split_rows函数
df = df.applymap(split_rows)
# 将每个单元格中的列表合并成一个字符串
df = df.applymap(lambda x: '\n'.join(x))
print(df)
```
输出:
```
A B C
0 a\nb\nc\n i\nj\n o
1 d\ne\n k\nl\nm\n p\nq\nr\n
2 f\ng\nh\n n s\nt\n
```
阅读全文