如何遍历Pandas数据帧

时间:2016-01-19 13:51:03

标签: python numpy pandas scikit-learn

我正在尝试遍历Pandas数据帧。列表L包含用于指定行XY应从哪个开始的值,即(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

3 个答案:

答案 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)