我有一个数据框dframe,如果数字<5,我想遍历列号的行,那么我的列STATE取值'vv' 如果数字在[5..17]之间,则我的列STATE的值应为'xx'。 其他国家(地区)为“ yy”。 所以我写了这段代码,但是没用。
请帮忙。
谢谢你 `
Sub Find_Date()
Dim Max_date As Date
Max_date = Application.WorksheetFunction.Max(Columns("A"))
Worksheets("Sheet1").Range("A" & Max_date).End(xlDown).FillDown
End Sub
答案 0 :(得分:0)
以下代码应为您工作。
dframe['state']=''
dframe.loc[dframe['number'] <5, 'state'] = 'vv'
dframe.loc[(dframe['number'] >5) & (dframe['number']<17), 'state'] = 'xx'
dframe.loc[dframe['state'] =='', 'state'] = 'yy'
答案 1 :(得分:0)
您可以使用列表理解功能在一行中完成此操作:
dframe['STATE'] = ['vv' if (i < 5) else 'xx' if (i >= 5) & (i < 17) else 'yy' for i in dframe['number']]