Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python if语句以获取最新值_Python 3.x_Excel_If Statement - Fatal编程技术网

Python 3.x Python if语句以获取最新值

Python 3.x Python if语句以获取最新值,python-3.x,excel,if-statement,Python 3.x,Excel,If Statement,如何在Python中执行与excel中相同的if语句 基于其他列的最新可用值,在我的数据框中创建一个新列 为了在excel中获得此信息,我执行了以下操作: =如果 另请参见screentshot 我需要从这开始 为此您可以使用python的max和datetime.datetime.strtime作为键: months\u used=[“一月”、“四月”、“八月”] 导入日期时间 last_month_used=max(months_used,key=lambda month:datetim

如何在Python中执行与excel中相同的if语句

  • 基于其他列的最新可用值,在我的数据框中创建一个新列
为了在excel中获得此信息,我执行了以下操作: =如果

另请参见screentshot

我需要从这开始


为此

您可以使用python的
max
datetime.datetime.strtime
作为键:

months\u used=[“一月”、“四月”、“八月”]
导入日期时间
last_month_used=max(months_used,key=lambda month:datetime.datetime.strtime(month,'%B'))
#=‘八月’
另见:

或者,您可以使用python的
max
aReferenceListOfAllTheMonths.index
作为键:

allmonths=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十一月”、“十二月”]
上次使用的月份=最大值(使用的月份,关键字=allmonths.index)
#=‘八月’
或者,您可以使用字典:

allmonths={'January':0, 'February':1, 'March':2, 'April':3, 'May':4, 'June':5, 'July':6, 'August':7, 'September':8, 'October':9, 'November':10, 'December':11}
last_month_used = max(months_used, key=allmonths.get)
#               = 'August'

您好,Stef,我看不出您的解决方案将如何解决我的问题,因为我必须检查df中的多个列。您的代码的哪一部分告诉python检查不同的列并将最大值返回到新的列?亲爱的Frederik,在您的问题中,我看不出您的数据是以何种形式或使用何种库显示的,因此我决定只使用一行来显示我的解决方案。我打电话给你使用的那一行
months\u
。这一行包含三列中的元素:“一月”、“四月”和“八月”。嗨,斯蒂夫,我用前后截图更新了这个问题。我通过在excel中编写公式获得“之后”结果,如问题所示。但是,我非常希望避免从python导出到excel,然后再导入到python。如果我能用python编写同样的代码,检查所有相关列以获得上一个月/max的数据,并逐行进行检查。希望它有意义,但无论如何,感谢您花时间回答您是否尝试过使用
max(months\u used,key=lambda month:datetime.datetime.strtime(month,“%B”)
,其中
months\u used
是行中所有月份的列表,从第一列“last month used\u x”到最后一列“last month used”是的,我得到了错误:KeyError:“['last month used_06']not in index”这里是完整的代码:df[“month”]=max(df[[“last month used_05”,“last month used_06”,“last month used_x”,“last month month used_y”,“last month month used”]],key=lambda month:datetime.datetime.strTime(month,%B'))注意:我只是更改了前两列的名称,因为我看到第一列与第三列的名称相同,第二列与第四列的名称相同。