Python Pandas将数据移至新行

时间:2019-02-22 16:46:09

标签: python pandas dataframe

我无法以正确的格式将数据加载到数据框中。

我正在使用的数据具有以下形式:

Sensor Name,Variable,Units,Timestamp,Value,Flagged as Suspect Reading
PER_EMOTE_2202,CO,ugm -3,2019-02-15 15:46:16,476.634102929914,False
PER_EMOTE_2202,Humidity,%,2019-02-15 15:46:16,49.8,False
PER_EMOTE_2202,NO,ugm -3,2019-02-15 15:46:16,68.5581902781,False
PER_EMOTE_2202,NO2,ugm -3,2019-02-15 15:46:16,80.220623065752,False
PER_EMOTE_2202,Sound,db,2019-02-15 15:46:16,69.0,False
PER_EMOTE_2202,Temperature,Celsius,2019-02-15 15:46:16,13.2,False
PER_EMOTE_2202,CO,ugm -3,2019-02-15 15:47:16,475.363796635848,False
PER_EMOTE_2202,NO,ugm -3,2019-02-15 15:47:16,84.7920567981415,False
PER_EMOTE_2202,NO2,ugm -3,2019-02-15 15:47:16,82.3021250062142,False
PER_EMOTE_2202,Sound,db,2019-02-15 15:47:16,69.0,False

我想将其加载到代表每个变量值的列中,并按时间戳索引。

例如; Desired Format

到目前为止,我有以下内容:

def load_data(path):

    df = pd.read_csv(path, usecols=['Timestamp', 'Variable', 'Units', 'Value'])
    df = df.set_index('Timestamp')

    return df

这产生结果; Result

1 个答案:

答案 0 :(得分:1)

尝试使用pivot tables

def load_data(path):

    df = pd.read_csv(path, usecols=['Timestamp', 'Variable', 'Units', 'Value'])
    df = df.pivot_table(index='Timestamp', columns='Variable', values='Value')

    return df