我正在尝试遍历Pandas数据帧。列表L
包含用于指定行X
或Y
应从哪个开始的值,即(1:,2:,3:)。
list = [1,2,3]
for L in list:
X = data.ix[L:, 'X':]
Y = data.ix[L:, 'Y']
regressor = LinearRegression()
regressor.fit(X, Y)
prediction = regressor.predict([[Variable]])
尝试上述操作时的错误是:
TypeError: 'type' object is not iterable
答案 0 :(得分:1)
IIUC您可以执行以下操作:
l = [1,2,3]
results = []
for idx in l:
X = data.ix[idx:, 'X':]
Y = data.ix[idx:, 'Y']
regressor = LinearRegression()
regressor.fit(X, Y)
results.append(regressor.predict([[Variable]]))
但是,我不知道Variable
在这里是什么,您也可以执行以下操作:
for df in data.iloc[::1]:
regressor = LinearRegression()
regressor.fit(df['X'], df['Y'])
results.append(regressor.predict([[Variable]]))
答案 1 :(得分:0)
你应该尝试iterrrows,[http://pandas-docs.github.io/pandas-docs-travis/basics.html#iterrows]
>>> df = pd.DataFrame([[1, 1.5]], columns=['int', 'float'])
>>> row = next(df.iterrows())[1]
>>> row
int 1.0
float 1.5
Name: 0, dtype: float64
答案 2 :(得分:0)
您还可以将其转换为字典或列表,然后再使用,如您所知:
list_from_df = df.to_list()
for item in list_from_df:
print(item)
或作为字典:
df.to_dict()
for key, value in list_from_df.items():
print(key) # index
print(value)