对不起,我是新来的发布问题的人,我看过一些python文档,但是找不到groupby,melt,merge等所需的内容。
我在python中有以下带有3列(函数,请求,响应)的数据框:
function request response
status {Status: CALCULATING}
status {Status: CALCULATED}
status {Status: NONE}
temperature {60}
temperature {Front}
temperature {60}
temperature {Front}
temperature {59}
temperature {Rear}
temperature {59}
temperature {Rear}
我想向上“折叠”行,以便数据框如下所示:
function request response
status {Status: CALCULATING}
status {Status: CALCULATED}
status {Status: NONE}
temperature {Front} {60}
temperature {Front} {60}
temperature {Rear} {59}
temperature {Rear} {59}
有人可以帮我吗?另外,很抱歉很难阅读表格。当我从excel输出文件复制并粘贴时,我不知道如何正确发布表格。谢谢!
答案 0 :(得分:0)
有点丑陋,但是您可以按function
对数据帧进行分组,如果function == 'temperature'
可以进行shift-concat-skip跳过,否则保持数据不变。
df.groupby('function').apply(
lambda x: x['request response'].str.cat(x['request response'].shift(), ' ')[1::2]
if all(x['function'] == 'temperature') else x['request response']
).reset_index(level=1, drop=True).reset_index()
# outputs:
function request response
0 status {Status: CALCULATING}
1 status {Status: CALCULATED}
2 status {Status: NONE}
3 temperature {Front} {60}
4 temperature {Front} {60}
5 temperature {Rear} {59}
6 temperature {Rear} {59}