转换 - df["列"].apply() - 字段是list转多行
介绍apply方法
简单介绍:可以替代python的for循环
详细介绍:Pandas 中的 apply 函数是一个非常强大的工具,它允许你对 DataFrame 的每一行或每一列应用一个函数,并返回一个 Series 或 DataFrame 作为结果。apply 可以用于复杂的数据转换和分析任务,特别是当你需要对数据集中的每个元素执行自定义操作时。
数据
import numpy as np
import pandas as pd
df = pd.DataFrame(data=[{"A":"one", "B":"1, 2"}, {"A":"two", "B":"3, 4"}])
|
A |
B |
0 |
one |
1, 2 |
1 |
two |
3, 4 |
整理
df["B"] = df["B"].str.split(",")
|
A |
B |
0 |
one |
[1, 2] |
1 |
two |
[3, 4] |
apply()方法
res = df_data.set_index(['列A', "列B", '列C'])['list字段列名'].apply(pd.Series).stack()
res = df.set_index(['A'])['B'].apply(pd.Series).stack()
# stack() 行转列成列
res = res.reset_index()
|
A |
level_1 |
0 |
0 |
one |
0 |
1 |
1 |
one |
1 |
2 |
2 |
two |
0 |
3 |
3 |
two |
1 |
4 |
