簡體   English   中英

通過jupyter將a.csv文件轉換為Python指定樣式

[英]Convert a .csv file into a specified style with Python by jupyter

該文件如下所示:該文件看起來像

第一列是user_id ,第二列是joke 1的評分,rest 可以用同樣的方式完成。 我想將上面顯示的文件轉換為如下格式:

user_id | joke_id | rating
--------------------------
   1    |   1     | -7.82
   1    |   2     | 8.79

此外,轉換后,由於正常評分在-10到+10之間,數字99表示用戶沒有為相應的笑話評分,應該被刪除。

您的問題涉及多個步驟,請避免將所有問題混為一談。 根據您的問題,以下步驟會有所幫助:

  • 使用pandas重新讀取csv文件
import pandas as pd
raw = pd.read_csv('PATH-TO-FILE')
  • 使用melt DataFrame

由於僅提供圖像,因此將使用示例 DataFrame 代替。

raw = pd.DataFrame([[1, -7, 8, 99], [2, 4, 0, 6]], columns = ['user_id', 'joke_1', 'joke_2', 'joke_3'])
   user_id  joke_1  joke_2  joke_3
0        1      -7       8      99
1        2       4       0       6

使用melt取消旋轉 DataFrame :

df = pd.melt(raw, id_vars=['user_id'], value_vars=['joke_1', 'joke_2', 'joke_3'], var_name='joke', value_name='rating')
   user_id    joke  rating
0        1  joke_1      -7
1        2  joke_1       4
2        1  joke_2       8
3        2  joke_2       0
4        1  joke_3      99
5        2  joke_3       6
  • 過濾 Dataframe 條件

使用pandas ,您可以輕松過濾 DataFrame 條件:

df_processed = df[df.rating != 99].reset_index(drop=True)

請注意reset_index()用於清理索引,與您的問題無關。

以上希望對您有所幫助。

暫無
暫無

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

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