【发布时间】:2018-06-20 06:37:41
【问题描述】:
我正在尝试解决有关顾客对餐厅偏好的问题。我有两个不同的 CSV,一个包含客户信息:
所以我想尝试根据客户偏好进行监督培训,以确定餐厅的评分。为了实现这一点,我认为我必须为每个评分附加客户信息(这样我就有变量要分析)。
我正在尝试使用 python 和 pandas。
我试过这个:
import pandas as pd
from pandas.plotting import scatter_matrix
import matplotlib.pyplot as plt
from sklearn import model_selection
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import SVC
from pandas.plotting import scatter_matrix
import numpy as np
df1 = pd.read_csv('/2_user_profile.csv', index_col = [0])
df2 = pd.read_csv('/3_Ratings.csv')
#Create empty dataframe with named columns
df = pd.DataFrame(columns=(np.concatenate((df2.columns.values, df1.columns.values), axis=0)))
#Joining the tables
for index, row in df2.iterrows():
userID= row['userID']
frame=[row, df1.loc[userID]]
print(frame)
df = pd.concat([df, pd.DataFrame(frame)], axis=0)
print(df)
print(frame) 会给我这个结果:
这是有道理的,但是当我打印 df 时,它给了我这个:
这意味着我创建的每一帧都会在数据帧上创建一个双重记录,其中一个包含来自 df1 的信息,并且与 df2 上的数据对应的所有值都是空的,另一个寄存器用于 df2 上的所有值和对应于 df1 的空值.
这是我第一次尝试 Python+机器学习,如果您对我的方法也有意见,请告诉我。
【问题讨论】:
-
所以你只想加入列?
标签: python python-3.x pandas