使用python将列值与数据框中的int进行比较

时间:2018-11-07 22:42:35

标签: python dataframe comparison

我有一个数据框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

2 个答案:

答案 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']]