python - Pandas 数据帧 : Grouping columns having the same first characters

标签 python python-3.x pandas dataframe

我有一个如下所示的数据框

                            LIT__0001   LIT__002    AAA__0001   AAA__0002   XYZ
2019-10-31 13:40:00-04:00   NaN         0.014786    10          55          1
2019-10-31 13:45:00-04:00   NaN         0.012143    33          11          2
2019-10-31 13:50:00-04:00   NaN         NaN         NaN         NaN         3
2019-10-31 13:55:00-04:00   NaN         0.020000    14          13          4
2019-10-31 14:00:00-04:00   0.010000    NaN         14          NaN         5

我需要将其转换为如下所示的数据框

                            LIT         AAA         XYZ
2019-10-31 13:40:00-04:00   0.014786    10          1
2019-10-31 13:45:00-04:00   0.012143    11          2
2019-10-31 13:50:00-04:00   NaN         NaN         3
2019-10-31 13:55:00-04:00   0.020000    13          4
2019-10-31 14:00:00-04:00   0.010000    14          5

也就是说,对于“__”之前具有共同第一个字符的每一列,取每行的最小值。

我的数据框确实很大,所以我希望有更快的解决方案。

最佳答案

使用GroupBy.min按具有 axis=1 的列和用于拆分的 lambda 函数:

df = df.groupby(lambda x: x.split('__')[0], axis=1, sort=False).min()

或者使用str.split :

df = df.groupby(df.columns.str.split('__').str[0], axis=1, sort=False).min()
print (df)
                                LIT   AAA  XYZ
2019-10-31 13:40:00-04:00  0.014786  10.0  1.0
2019-10-31 13:45:00-04:00  0.012143  11.0  2.0
2019-10-31 13:50:00-04:00       NaN   NaN  3.0
2019-10-31 13:55:00-04:00  0.020000  13.0  4.0
2019-10-31 14:00:00-04:00  0.010000  14.0  5.0

关于python - Pandas 数据帧 : Grouping columns having the same first characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58856346/

相关文章:

javascript - 如何设置 jQuery-File-Upload?如何实现上传处理程序?

python-3.x - Python 3 的进程之间共享多维数组

python - 计算一行中符合条件的值 - Python

python - 如何使用带有 gzip 压缩选项的 pandas read_csv 读取 tar.gz 文件?

python - 如何在命令行的虚拟环境中打印 python 测试中变量的内容

python - 如何链接到 django 上的用户个人资料

python - 直接调用 fixture "setUp"。 Fixtures 不应该被直接调用

python-3.x - Docker 拉取 Python

python - pandas 列的二进制字符串中每个数字的众数

python - 登录后django重定向不起作用 "next"没有发布?