对于Loop和Pandas-从列表或变量设置属性

时间:2018-12-07 05:27:31

标签: python pandas for-loop

我有一个带有很多列的Pandas数据框。在FOR循环中,我每次都会选择这些字段的不同子集。

myList = ['column1', 'column2', 'column3']
for column in myList:
    df2 = df[['Day', column]]
    value = df2.column.min()
    value2 = df2.ix[df2.column.idxmin()]

对于值,我得到一个错误:“数据框没有属性'column'”,所以我显然有语法错误。预先感谢。

编辑:按请求采样数据框:

df = pd.DataFrame([
    ['Monday', 4936.00, 5036.00, 130.18, 140.18, 40.67, 41.67, 166.96, 
    168.96, 145.87, 145.87],
    ['Tuesday', 5258.82, 5358.82, 141.99, 146.99, 41.00, 43.00, 169.70, 
    172.70, 155.00, 165.00]])

df2 = pd.Dataframe([
    ['Monday', 4936.00],
    ['Tuesday', 5258.82]])

在循环的每次迭代中,df2中的数字向右移动一位。

1 个答案:

答案 0 :(得分:2)

您可以像这样传递列:

for c in myList:
    df2 = df[['Day','{}'.format(c)]]
    value = df2['{}'.format(c)].min()
    value2 = df2.ix[df2['{}'.format(c)].idxmin()]    

编辑:请注意,由于ixdeprecated,因此应将其替换为iloc