dataframe一列拆分为多列,一行拆分为多行
import pandas as pd
df = pd.DataFrame([['a1','a2', 'a3_a4'], ['b4', 'b5', 'b6_b7']],columns=['A','B','C'])
| a | b | c | |
|---|---|---|---|
| 0 | a1 | a2 | a3_a4 |
| 1 | b4 | b5 | b6_b7 |
1.一列拆分为多列
使用指定分隔符,将一列分隔为多列
import pandas as pd
df = pd.DataFrame([['a1','a2', 'a3_a4'], ['b4', 'b5', 'b6_b7']],columns=['A','B','C'])
df_1 = df['C'].str.split('_')
print(df_1)
df_2 =df['C'].str.split('_',expand=True)
print(df_2)
# 删除表格df的C列,然后和分列的结果df_2拼接
df_3 = df.drop(['C'],axis=1).join(df_2)
print(df_3)
str.split不使用expand参数,返回列表;使用expand参数,返回列表拆分为列
输出:
表格df_1
| 0 | [a3,a4] |
| 1 | [b6,b7] |
表格df_2
| 0 | 1 | |
|---|---|---|
| 0 | a3 | a4 |
| 1 | b6 | b7 |
表格df_3
| A | B | 0 | 1 | |
|---|---|---|---|---|
| 0 | a1 | a2 | a3 | a4 |
| 1 | b4 | b5 | b6 | b7 |
2.一行拆分为多行
import pandas as pd
df = pd.DataFrame([['a1','a2', 'a3_a4'], ['b4', 'b5', 'b6_b7']],columns=['A','B','C'])
df['C'] = df['C'].apply(lambda x:x.split('_')) #或者df['C'] = df['C'].map(lambda x:x.split('_'))
# explode方法直接实现列转行
# explode处理的主要对象为:列表,元组,numpy等类型
df = df.explode('C')
print(df)
输出:
| A | B | C | |
|---|---|---|---|
| 0 | a1 | a2 | a3 |
| 0 | a1 | a2 | a4 |
| 1 | b4 | b5 | b6 |
| 1 | b4 | b5 | b7 |
本文介绍了如何使用Python Pandas库对DataFrame中的列进行按分隔符拆分,并将一行数据转换为多行,展示了str.split()和explode()函数的用法。通过实例演示了列拆分成多列和行转多行的操作,适用于数据预处理和清洗阶段。
991

被折叠的 条评论
为什么被折叠?



