我需要能够遍历行并执行一些操作。下面是一些代码的开头。
for i, row in df.iterrows():
df.loc[i, 'Object'] = row
性能非常慢,我得到以下输出:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
我做错了什么?
答案 0 :(得分:0)
如果遍历整个数据框并尝试在每一行上使用loc,那么它将变慢。相反,试试这个:
df.ix[np.in1d(df['Object'], value)
答案 1 :(得分:0)
如果你真的发现需要循环,请使用itertuples,在大多数情况下,它的倍数会更快。
df = pd.DataFrame({"Object": [1,2,3], "Lifeishard_butunfair": [2,3,4]})
objectCol = df.columns.get_loc("Object")+1
for row in df.itertuples():
someVar = row[objectCol]