python - 熊猫将一些列值转换为行
问题描述
我有一个看起来像这样的 Pandas DataFrame df :
我希望它们以这种格式出现:
丢失 SignalName 列。我需要这种格式,因为我必须绘制时间与 SDLx 值。我认为它需要某种迭代器,我尝试过融化但没有用。
解决方案
尝试这个:
df.set_index(['time','SignalName'])['value'].unstack()
输出:
SignalName APID1 SLID1 SPID1
time
t_1 1 0 2
t_2 11 0 22
t_3 1 0 20
另外的选择:
df_out = df.set_index(['time','SignalName']).unstack()
df_out.columns = [f'{j}{i}' for i, j in df_out.columns]
df_out.reset_index()
输出:
time APID1value SLID1value SPID1value
0 t_1 1 0 2
1 t_2 11 0 22
2 t_3 1 0 20
重复值,您需要以某种方式聚合时间,这里我选择第一个值,您可以进行求和、平均值、最大值、最小值或您选择的任何聚合。
df.groupby(['time', 'SignalName'])['value'].agg('first').unstack()
输出:
SignalName APID1 SLID1 SPID1
time
t_1 1 0 2
t_2 11 0 22
t_3 1 0 20
推荐阅读
- php - 通过 wordpress api 将 json 作为 html 发送
- c++ - C++ 中实际需要尾随返回类型的地方?
- node.js - Docker 上的 Adonis ace 迁移 - SyntaxError: Unexpected identifier
- flutter - Flutter:如何从 TextFields 的 ListView.builder 中保存用户的输入
- c++ - 0的2D数组破坏无关循环的逻辑 - C++
- sql - 基于同一列更新
- java - 改造响应在 Android Studio 中返回 null
- javascript - 需要降价文件时,Webpack raw-loader 出错
- c# - 为什么我的 api 控制器中出现此 LINQ 错误?
- apollo - 在 Apollo 中处理未经身份验证的响应