我知道如何将行分解为列,但如何处理以下dataframe行?

date dummy avg lable
1-19 1 20 l1
1-19 0 40 l1
1-27 1 100 l2
1-27 0 140 l2

预计dataframe人:

date avg_t avg_c lable
1-19 20 40 l1
1-27 100 140 l2

dummy等于1时,avg等于20,并作为一列重命名为avg_t.与第avg_c列类似.

我试过:

df.groupby(['dummy','avg']).size().unstack

但是,它不起作用.

推荐答案

DataFrame.assignSeries.map创建新列,然后用DataFrame.pivotDataFrame.add_prefix创建新列:

df = (df.assign(new = df['dummy'].map({0:'c', 1:'t'}))
        .pivot(['date','lable'], 'new', 'avg')
        .add_prefix('avg_')
        .reset_index()
        .rename_axis(None, axis=1))

print (df)
   date lable  avg_c  avg_t
0  1-19    l1     40     20
1  1-27    l2    140    100

Python-3.x相关问答推荐

使用Polars阅读按日期键分区的最新S3镶木地板文件

一种基于绝对排序值的极框索引和列定位的Python方法

Numpy将3D数组的每个切片相乘以进行转置并对其求和

模型中的__str__方法在Django管理面板中生成大量重复查询

从.csv导入将文件夹路径加入到文件名

给定panda代码的分组和百分比分布pyspark等价

如何在当前测试中使用fixture 转换后的数据进行参数化?

Python,Web 从交互式图表中抓取数据

如何使用 django rest 框架在 self forienkey 中删除多达 n 种类型的数据?

Python Regex 查找给定字符串是否遵循交替元音、辅音或辅音、元音的连续模式

如何向 scikit-learn 函数添加类型提示?

Dask worker post-processing

如何在 VSCode 的在 Cloud Run Emulator 上运行/调试构建设置中添加 SQL 连接

类型提示和链式赋值以及多重赋值

Python 异步调试示例

迭代dict值

cv2 python 没有 imread 成员

在没有时间的python中创建日期

在 ubuntu 20.04 中安装 libpq-dev 时出现问题

为什么变量 = 对象不像变量 = 数字那样工作