我有一个带有很多列的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中的数字向右移动一位。
答案 0 :(得分:2)
您可以像这样传递列:
for c in myList:
df2 = df[['Day','{}'.format(c)]]
value = df2['{}'.format(c)].min()
value2 = df2.ix[df2['{}'.format(c)].idxmin()]
编辑:请注意,由于ix
为deprecated,因此应将其替换为iloc
。