如何使用钯熔体作为标题的两行

2024-06-25 23:04:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,看起来像这样:

   DATETIME              |  TAGNAME1          |  TAGNAME2

0  DESCRIPTION           |  TAG_DESCRIPTION   | TAG2_DESCRIPTION

1  01/01/2015 00:00:00   |  100               | 200

我需要以下结果

^{pr2}$

我看到一些例子使用钯熔体所以我按照命令运行

pd.melt(df, id_vars=['DATETIME'], var_name=['TagName'], value_name='Value')

但我缺少一个新专栏的描述

有什么方法可以达到我的需要吗?在

提前谢谢


Tags: 数据name命令dfdatetimetagdescription例子
1条回答
网友
1楼 · 发布于 2024-06-25 23:04:23

考虑按行对数据帧进行切片,并使用最终合并运行两个融合:

from io import StringIO
import pandas as pd

data = '''DATETIME|TAGNAME1|TAGNAME2
DESCRIPTION|TAG_DESCRIPTION|TAG2_DESCRIPTION
1/01/2015 00:00:00|100|200'''

df = pd.read_table(StringIO(data), sep="|")
#              DATETIME         TAGNAME1          TAGNAME2
# 0         DESCRIPTION  TAG_DESCRIPTION  TAG2_DESCRIPTION
# 1  1/01/2015 00:00:00              100               200

df1 = df[0:1]        # FIRST ROW
df2 = df[1:len(df)]  # SECOND TO LAST ROW

mdf = pd.merge(pd.melt(df1, id_vars=['DATETIME'], var_name='TAGNAME',
                       value_name='DESCRIPTION')[['TAGNAME', 'DESCRIPTION']],
               pd.melt(df2, id_vars=['DATETIME'], var_name='TAGNAME',
                       value_name='VALUE'),
               on=['TAGNAME'])

mdf = mdf[['DATETIME', 'TAGNAME', 'DESCRIPTION', 'VALUE']]
#              DATETIME   TAGNAME       DESCRIPTION VALUE
# 0  1/01/2015 00:00:00  TAGNAME1   TAG_DESCRIPTION   100
# 1  1/01/2015 00:00:00  TAGNAME2  TAG2_DESCRIPTION   200

相关问题 更多 >