如何在DataFrame中重塑数据

2024-05-19 00:21:18 发布

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

我正在做一个项目,我需要以特定的格式重塑数据。我已经在Excel中成功地转换了数据,但是我们如何使用pandas转换这些数据,因为在Excel中我们有行的限制

Territory ID    Patient Id  Doctor Id   Clinic Count    Attribute          Value
43                172        6021          Clinic1      Service Date      06/22/2017 
43                172        6021          Clinic1      Product               A
43                172        6021          Clinic1      Qty                   1
43                172        6021          Clinic1      Amount                80.63
43                172        6021          Clinic1      Age                   1
43                172        6021          Clinic1      Days Last Clinic      0
43                187        5658          Clinic2      Service Date       06/30/2017 
43                187        5658          Clinic2      Product               B
43                187        5658          Clinic2      Qty                   2
43                187        5658          Clinic2      Amount                52.48
43                187        5658          Clinic2      Age                   9y1m
43                187        5658          Clinic2      Days Last Clinic      23

必须按照以下格式对其进行重塑:

TerritoryID PatientId   DoctorId    Clinic_Count    Service_Date    Product    Qty    Amount   Age    Days Last Clinic   
    
43            172        6021          Clinic1      06/22/2017       A           1     80.63    1          0
43            187        5658          Clinic2      06/30/2017       B           2     52.48    9y1m       23

Tags: 数据agedate格式serviceproductdaysexcel
1条回答
网友
1楼 · 发布于 2024-05-19 00:21:18

试试这个:

import pandas as pd
df = pd.DataFrame({...}) # Your DataFrame

New_Data = {x:[] for x in list(df.columns)+list(df['Attribute'])}

for x in list(df.columns):
    for j, i in enumerate(list(df[x])):
        if not list(df['Clinic Count'])[j] in New_Data['Clinic Count']:
            New_Data[x].append(i)

New_Data.pop('Attribute')
New_Data.pop('Value')

for x, i in zip(list(df['Attribute']), list(df['Value'])):
    New_Data[x].append(i)

相关问题 更多 >

    热门问题