我有一个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具有许多功能,但是经过长时间的搜索我找不到它。所以我从很长的途中决定。上面是可行的,但是对切肉刀方式有什么想法吗?