簡體   English   中英

CSV 文件 - 使用 python 處理行和列

[英]CSV file - handle row and columns with python

請問你能幫幫我嗎?

我有關於酒店的 CSV 數據集文件並包含許多列。 我需要處理酒店名稱和評論。

如何將酒店名稱行轉換為列? 合並每家酒店的評論並將輸出保存到新的 CSV 文件中?

我使用 Python 3.7

更新:首先感謝您的評論

對不起,我必須把輸出的形狀

我有1400多家酒店

hotel-name     reviews 
Hotel Arena    love it
Hotel Arena    great
Hotel Arena    good
Hotel Arena    ........

the output will be :

hotel 1   hotel 2  hotel 3  .......
love it   stay     not bad
great     old      ..... 
good      ...      .......
..        
...         
....       

如果我正確理解您的問題,您有一個包含多行的 csv 文件,每一行都有對酒店的評論。

如果是這樣,你可以使用這樣的東西:

import pandas as pd

df = pd.DataFrame({'hotel': ['A', 'A', 'B', 'B', 'A', 'C'], 'rating': [1, 1, 2, 4, 3, 5]})

df.groupby('hotel').aggregate(lambda x: list(x))

DF 輸出為:

  hotel  rating
0     A       1
1     A       1
2     B       2
3     B       4
4     A       3
5     C       5

在分組之后:

          rating
hotel           
A      [1, 1, 3]
B         [2, 4]
C            [5]

您必須為此安裝熊貓,並使用熊貓讀取您的 csv 文件(這很容易)。

您可以使用CSV 庫來做到這一點。 假設一個像這樣的 csv 文件:

name,review,comments
A,nice,blabla
B,notnice,bleble

您可以按列過濾行:

import csv

if __name__ == "__main__":
    file = open('file.csv', 'rb')
    for row in csv.DictReader(file, delimiter = ','):
        print (row['name'],row['review']) 

印刷:

('A', 'nice')
('B', 'notnice')

暫無
暫無

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

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