繁体   English   中英

如何在 pandas dataframe 上创建带串联的交叉表?

[英]How to create a crosstab with concatenation on pandas dataframe?

我有一个 pandas dataframe日志

  order  row   column     
  1      3     B   
  2      6     U        
  3      3     U       
  4      7     C
  5      6     B

我想创建一个 dataframe ,其中每一行对应于row中的一个数字,并且序列值是通过按 order 中的顺序连接column中的值来创建的:

        sequence
  3     BU
  6     UB
  7     C

有没有(快速)方法可以做到这一点?

这完成了工作

df.groupby('row')['column'].apply(lambda x: ''.join(list(x)))

Output

3    BU
6    UB
7     C

首先按顺序排序值,然后groupby row sort_values并确保使用sort=False 最后我们使用GroupBy.aggjoin字符串:

dfg = (
    df.sort_values("order")
    .groupby("row", sort=False)["column"].agg("".join)
    .reset_index(name="sequence")
)
   row sequence
0    3       BU
1    6       UB
2    7        C

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM