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

时间:2019-03-22 12:05:25

标签: python file csv row multiple-columns

可以帮我吗?

我有关于酒店的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      ...      .......
..        
...         
....       

2 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,则您的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]

为此,您将需要安装熊猫和read your csv file with pandas(这很容易)。

答案 1 :(得分:0)

您可以使用CSV library来做到这一点。假设这样的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')