[英]How to Remove Decimal in a Single Column?
我正在嘗試將 DataFrame 中的列轉換為行並將行轉換為列。
user_id movie_id rating
32236 1 1 5
23171 1 2 3
83307 1 3 4
62631 1 4 3
47638 1 5 3
26184 2 1 4
1333 5 1 4
172 5 2 3
54487 6 1 4
52430 7 4 5
18504 10 1 4
4617 10 4 4
44328 12 4 5
30881 13 1 3
4470 13 2 3
21009 13 4 5
39066 13 5 1
接下來我做了:
df = ratings.pivot_table(index=['movie_id'], columns='user_id', values='rating', fill_value='').rename_axis(None, axis=1).reset_index()
df
這就是我得到的:
movie_id 1 2 5 6 7 10 12 13
0 1 5.0 4 4 4 4 3
1 2 3.0 3 3
2 3 4.0
3 4 3.0 5 4 5 5
4 5 3.0 1
問題是原始值不是小數,為什么排名的第一列(“1”列)使用小數? 以及如何正確修復它(不僅僅是從列中刪除小數,而是像其他列一樣修復它)。
我認為問題是將數值與非數字fill_value=''
,然后浮點數顯示為整數:
df1 = ratings.pivot_table(index='movie_id', columns='user_id', values='rating', fill_value='')
print (df1)
user_id 1 2 5 6 7 10 12 13
movie_id
1 5.0 4 4 4 4 3
2 3.0 3 3
3 4.0
4 3.0 5 4 5 5
5 3.0 1
print (df1.applymap(type))
user_id 1 2 5 6 \
movie_id
1 <class 'float'> <class 'float'> <class 'float'> <class 'float'>
2 <class 'float'> <class 'str'> <class 'float'> <class 'str'>
3 <class 'float'> <class 'str'> <class 'str'> <class 'str'>
4 <class 'float'> <class 'str'> <class 'str'> <class 'str'>
5 <class 'float'> <class 'str'> <class 'str'> <class 'str'>
user_id 7 10 12 13
movie_id
1 <class 'str'> <class 'float'> <class 'str'> <class 'float'>
2 <class 'str'> <class 'str'> <class 'str'> <class 'float'>
3 <class 'str'> <class 'str'> <class 'str'> <class 'str'>
4 <class 'float'> <class 'float'> <class 'float'> <class 'float'>
5 <class 'str'> <class 'str'> <class 'str'> <class 'float'>
如果使用數字fill_value=0
它工作得很好:
df = ratings.pivot_table(index='movie_id', columns='user_id', values='rating', fill_value=0)
print (df)
user_id 1 2 5 6 7 10 12 13
movie_id
1 5 4 4 4 0 4 0 3
2 3 0 3 0 0 0 0 3
3 4 0 0 0 0 0 0 0
4 3 0 0 0 5 4 5 5
5 3 0 0 0 0 0 0 1
如果不需要聚合值並且只需要先將數據透視表轉換為字符串,然后替換缺失值:
ratings['rating'] = ratings['rating'].astype(str)
df = ratings.pivot(index='movie_id', columns='user_id', values='rating').fillna('')
print (df)
user_id 1 2 5 6 7 10 12 13
movie_id
1 5 4 4 4 4 3
2 3 3 3
3 4
4 3 5 4 5 5
5 3 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.