python - Pandas 爆炸指数

标签 python python-3.x pandas

我有一个像下面这样的 df

a = pd.DataFrame([{'col1': ['a,b,c'], 'col2': 'x'},{'col1': ['d,b'], 'col2': 'y'}])

当我使用 df.explode('col1') 进行爆炸时,我得到以下结果

col1 col2
a      x
b      x
c      x
d      y
b      y

但是,我想要像下面这样的东西,

col1 col2 col1_index
a      x      1
b      x      2
c      x      3
d      y      1
b      y      2

有人可以帮助我吗?

最佳答案

您可以执行以下操作:

result = a.explode('col1').reset_index().rename(columns={'index' : 'col1_index'})
result['col1_index'] = result.groupby('col1_index').cumcount()
print(result)

输出

   col1_index col1 col2
0           0    a    x
1           1    b    x
2           2    c    x
3           0    d    y
4           1    b    y

关于python - Pandas 爆炸指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59223095/

相关文章:

Python Opencv 和 Sockets - 以 h264 编码的流视频

python - 使用 WinPython 时,Python 中出现大量素数列表时出现意外的 sum(list) 行为

python - 如何在 Outlook (2010) 全局地址列表中搜索多个姓名?

python-3.x - 根据 Pandas 中的一个公共(public)列从另一个数据框中更新多列

python - dask 数据框如何将列转换为 to_datetime

python - 运行开发服务器时,Bottle 框架的线程之一出现 OSError

python - Django 休息框架 : Test serializers

python - 循环通过 python 正则表达式匹配

python-3.x - 如何为模型准备测试集形状。使用 keras 和 tensorflow 进行评估?

python - Pandas 无法读取 csv 文件,它将全部替换为 NaN