Я очень плохо знаком с Python + кодированием в целом, и у меня проблема с фреймами данных в пандах.
Я читаю файл обзоров Amazon (файлы можно найти здесь: http://snap.stanford.edu/data/web-Amazon-links.html) и хочу создать фрейм данных из данных.
Мне удалось преобразоватьрецензирует в dict и устанавливает его в dataframe, но вывод дает мне 3 отдельных dataframes для каждого значения столбца.
Как объединить три dataframes в один с column_names = ["Names",Цены »,« Количество баллов »,« Средние баллы »] и строки = [dict_key: [цены, количество баллов, средний балл]
Я думаю, что проблема заключается в пробелах или \ n. Однако яУ меня проблема с выяснением, где разделить пробелы. Я думал, что уже разделил проверки моей строкой в начале моего кода.
Извините, если это глупый вопрос, я просто очень заблудилсясейчас. Спасибо.
import pandas as pd
import statistics
#!pip install pandas==0.23.4
data = open('Pet_Supplies.txt','r')
data_text = data.read()
data_split = data_text.strip().split('\n\n')
data.close()
review_dict={}
for x in data_split:
names_obj=re.search('(product/title:\s)(.*)',x)
names=names_obj.group(2)
prices_obj = re.search('product/price:\s(.*)\n',x)
prices = prices_obj.group(1)
score_obj = re.search('\d\.\d\n',x)
scores=score_obj.group(0)
if names in review_dict:
num_reviews = review_dict[names][1]+1
sum_scores = float(scores)*float(num_reviews)
mean_score = sum_scores/num_reviews
review_dict[names]=[prices,num_reviews,mean_score]
else:
review_dict[names]=[prices,1,float(scores)]
df = pd.DataFrame.from_dict(review_dict, orient='index',columns=("Price","Number of Reviews","Mean Price")).rename_axis('Names')
print(df)
``
I expected the results to be:
Name Price Num Reviews Mean Score
Product_1 8.0 14 4.3
My actual code gives me:
Price \
Names
Orbee Tuff Ball Orange - SMALL 6.95
Number of Reviews \
Names
Orbee Tuff Ball Orange - SMALL 4
Mean Price
Names
Orbee Tuff Ball Orange - SMALL 5.0