熊猫如何使用分组依据以更改数据框的形状

时间:2020-06-15 14:52:12

标签: python pandas

我有一个CSV文件,正在读取文件,并对数据进行分组和更改,如下所示:

df = pd.read_csv('myfile.csv', encoding = "ISO-8859-1", delimiter=";") 
df.head()
        gg        dd
0  PINAR E  2020-414
1  PINAR E  2020-415
2  PINAR E  2020-416
3  ENAY S   2020-417
4  SBEL T   2020-418
4  SBEL T   2020-418
5  SBEL T   2020-419
6  SBEL D   2020-420
7  SBEL D   2020-421
8  HATCE M  2020-422
9  PINAR E  2020-423   ## [249 rows x 2 columns]

我的工作代码:

values = df.groupby('gg')['dd'].apply(','.join).str.split(',').values
maxlen = len(max(values, key=len)) ## result --> 16 
values = [values[i]+ [None]* (maxlen-len(d)) for i,d in enumerate(values)]
indexs = df['gg'].unique()
df = pd.DataFrame(values, index=indexs).T

最后,我的目标视图是:

         PINAR E    ENAY S      SBEL T  ... GNL OLCAY    BERNA A    SAADET I
0       2020-685  2020-432    2020-470  ...  2020-418   2020-427    2020-448
1       2020-687  2020-440    2020-509  ...  2020-419   2020-429    2020-457
2       2020-688  2020-467    2020-540  ...  2020-426   2020-434    2020-458
3       2020-700  2020-484    2020-542  ...  2020-455   2020-459    2020-524
4           None  2020-491    2020-581  ...  2020-472   2020-493    2020-544
5           None  2020-550    2020-590  ...  2020-531   2020-496    2020-546
6           None  2020-593    2020-600  ...  2020-533   2020-498    2020-566
7           None  2020-595    2020-662  ...  2020-556   2020-538    2020-567
8           None  2020-611    2020-663  ...  2020-578   2020-558    2020-569
9           None  2020-632    2020-664  ...  2020-651   2020-586    2020-615
10          None      None    2020-666  ...  2020-668   2020-610    2020-635
11          None      None    2020-669  ...      None   2020-639    2020-695
12          None      None    2020-670  ...      None   2020-665        None
13          None      None    2020-671  ...      None   2020-679        None
14          None      None    2020-674  ...      None   2020-693        None
15          None      None    2020-682  ...      None       None        None

据我所知,Pandas具有许多功能,但是经过长时间的搜索我找不到它。所以我从很长的途中决定。上面是可行的,但是对切肉刀方式有什么想法吗?

0 个答案:

没有答案