python - 在 Pandas 数据框中合并具有相同浮点索引的行

标签 python pandas dataframe

我有一个这样的数据框:

     val1  val2
time           
0.0     a    12
0.1     b    13
0.1     c    14
0.2     d    15

我想同时合并行看起来像:

     val1    val2
time           
0.0     a      12
0.1     [b,c]  [13, 14]
0.2     d      15

基于 this answer ,我可以通过选择一列(例如 val)来操作系列:

df.groupby('time')['val1'].apply(lambda x: list(x) if len(x) > 1 else x.iloc[0])

并得到:

time
0.0         a
0.1    [b, c]
0.2         d
Name: val1, dtype: object

但我想对所有列(val1val2)执行此操作。我可以在不遍历每一列的情况下做到这一点吗?

最佳答案

您可以使用 .agg .

df.groupby('time').agg(lambda x: list(x) if len(x) > 1 else x.iloc[0])

输出:

        val1      val2
time
0.0        a        12
0.1   [b, c]  [13, 14]
0.2        d        15

关于python - 在 Pandas 数据框中合并具有相同浮点索引的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48999774/

相关文章:

python - 使用 pandas 从 json 文件中提取数据时, bool 值会自动转换为大写

python - 如何 f.write .append 结果到 CSV

python - 如何在网站上运行 Flask 应用程序

python - 根据分组和条件更新数据框列

python - Dataframe Apply方法返回多个元素(系列)

r - 在 data.frame 行中查找 NA 值序列

python - Pandas:一个值相对于组总数的百分比

python - 通过 python (msn) 发送即时消息

python - Pandas 数据帧 to_sql 数据长度超过 65536 个字符

pandas - 从 pandas 导出到没有行名称(索引)的_excel?