我正在尝试ping函数并从数据帧pyrecords传递多个字段。 不幸的是,下面的代码为我提供了审核字段的正确答案,同时也打印了dealid和userid的所有值。
for review in pyrecords['review']:
analyze_text(review,u'english',pyrecords['dealid'],pyrecords['userid'])
这是数据框的样子。
>>> pyrecords
<class 'pandas.core.frame.DataFrame'>
Int64Index: 433 entries, 0 to 432
Data columns (total 5 columns):
createddate 433 non-null values
userid 433 non-null values
dealid 433 non-null values
preferredlocale 42 non-null values
review 433 non-null values
dtypes: datetime64[ns](1), int64(2), object(2)
答案 0 :(得分:1)
for index, row in pyrecords.iterrows():
analyze_text(row['review'], u'english',row['dealid'],row['userid'])
请注意,迭代DataFrame的行可能表明您没有充分利用Pandas。为了获得更好的性能,您需要重写analyze_text
以对完整的DataFrame或Series进行操作,而不是逐行。
答案 1 :(得分:0)
您的问题有点不清楚,但您似乎正在尝试将函数应用于DataFrame的每一行。尝试
analyze_english = lambda review, dealid, userid: \
analyze_text(review, u'english', dealid, userid)
pyrecords[['review', 'dealid', 'userid']].apply(analyze_english, axis=1)