可以帮我吗?
我有关于酒店的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 ... .......
..
...
....
答案 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')