簡體   English   中英

重新排列 Pandas Dataframe 中的列和行

[英]Rearrange Columns and Rows from a Pandas Dataframe

我有一個 CSV 文件,其中包含 Movie_ID 和 Movie_Name 列,另一個文件包含 User_ID、Movie_ID 和 Rating 列。 如何創建一個新的 dataframe,其中列是 Movie_Name 或 Movie_ID,行是 User_ID 和 Rating? 例如像

用戶身份 電影1 電影2 電影3
0 1個 4個 5個
1個 4個 3個 5個

注意:並非每個用戶都對每部電影進行了評分。

先感謝您。

對於此操作,我認為加入可以完成這項工作。 像這樣:

df1.join(df2, on='Movie_ID')

如果您提供示例,可以使代碼更具體。

您可以使用 Pandas pivot根據列值重塑數據。 由於並非每個用戶都對每部電影進行了評分,因此結果可能包含NaN s(由 Pandas 轉換為float類型)。 如果你想將結果轉換為int你可以 append .fillna(0).astype(int)pivot function 的末尾。

樣本 df

    User_ID Movie_ID  Rating
0       131    38552       4
1       203    38552       4
2        50    38552       1
3       585    95894       1
4       138    94611       4
5       632    73111       0
6       328    95894       0
7       461    73111       0
8       924    73111       3
...
...

Pivot function

df_new = df.pivot(index='User_ID', columns='Movie_ID', values='Rating').fillna(0).astype(int)
print(df_new)
Movie_ID  193846  38552  73111  83641  93843  94611  95894
User_ID
7              0      0      2      0      0      0      0
43             0      0      0      0      0      0      0
50             0      1      0      0      0      0      0
85             0      0      0      0      0      0      0
131            0      4      0      0      0      0      0
138            0      0      0      0      0      4      0
145            0      0      4      0      0      0      0
156            0      0      4      0      0      0      0
195            0      0      3      0      0      0      0
203            0      4      0      0      0      0      0
209            0      0      0      0      0      0      0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM