Python 我应该如何分配一个二进制虚拟变量多次?

Python 我应该如何分配一个二进制虚拟变量多次?,python,excel,time,scripting,Python,Excel,Time,Scripting,我有两张电子表格。其中一个是大约20000排进入急诊室的病人。每行有一个日期/时间列,以及单独的日期和时间列。显然,多个患者在同一天进入。另一个电子表格包含了第一个电子表格中每天366个日出和日落的日期和时间 我要做的是在第一个电子表格中创建一个名为is_night的列,如果是白天,则将每个条目编码为0,即患者输入的时间大于日出时间,小于与患者输入日期对应的日落时间,如果是夜间,则编码为1 做这件事最简单的方法是什么?在Excel中进行时间比较是一件痛苦的事情,Python给了我解析方面的问题。

我有两张电子表格。其中一个是大约20000排进入急诊室的病人。每行有一个日期/时间列,以及单独的日期和时间列。显然,多个患者在同一天进入。另一个电子表格包含了第一个电子表格中每天366个日出和日落的日期和时间

我要做的是在第一个电子表格中创建一个名为is_night的列,如果是白天,则将每个条目编码为0,即患者输入的时间大于日出时间,小于与患者输入日期对应的日落时间,如果是夜间,则编码为1

做这件事最简单的方法是什么?在Excel中进行时间比较是一件痛苦的事情,Python给了我解析方面的问题。注意,我可以使用Pandas、R、Excel和access访问Python 3。谢谢

编辑:以下是每个电子表格的我的列标题:


你可以用熊猫,试试这样的东西。不知道您的变量和详细信息,但下面显示的代码应该是可以理解的,您可以根据自己的具体情况进行调整

# dates_df is a file with dates and sunrise and sunset times
# patiets_df is a file with patiens data

def get_sunrise(x):
    sunrise = dates_df[dates_df['date'] = x['date']].sunrise_time
    return sunrise

def get_sunset(x):
    sunset = dates_df[dates_df['date'] = x['date']].sunset_time
    return sunset

# add columns for sunrise and sunset to patients_df

patients_df['sunrise']=patients_df.apply(get_sunrise, axis = 1)
patients_df['sunset']=patients_df.apply(get_sunset, axis = 1)

# checking every admission time from patients_df if it is after sunset and before sunrise
patients_df['is_night'] = patients_df.apply(lambda x: x.time < x.sunrise and x.time > x.sunset, axis=1)

我想出来了。我将这两个表都加载到Access中,根据日期进行了连接,然后在Excel中编写了一个快速if语句,结果成功了。

从患者文件中获取日期/时间信息,在天文文件中查找日期,将患者时间与日出和日落时间进行比较。谢谢!但是我该如何在Excel单元格中进行编码,然后我可以为366个日期中的每个单元格应用这些代码呢?我有一些Python代码,可以根据特定位置的地理坐标经度和纬度相当准确地计算日出和日落的时间,这听起来可能很有用。现在的代码是从几年前我在网上发现的更旧的公共域代码中派生出来的,如果你感兴趣的话,我想我已经在这里的某个地方发布了它。如果你想要更多的信息,那就好了,谢谢!我从海军网站上得到了我的数据。它是文本格式的,所以我将其保存为.txt并导入Excel电子表格。然后,我根据原始数据集的日期范围将其分为日期和时间。pnuts,我正在用每个电子表格的列标题更新我的原始帖子。我曾经从海军网站数据中做过类似的事情,但现在用代码动态计算。这里有一个问题的链接,这个问题的标题看起来确实不错,但我认为代码编译不对。但这正是我想要做的。顺便问一下,你能像Python中那样在一行中有多个赋值语句吗?我没有测试过,因为我没有你的数据:它可能不工作,这是真的;如果可以,请在您的问题中包含样本数据。很好,这是一个好主意,我还考虑了使用熊猫在日期加入:
# dates_df is a file with dates and sunrise and sunset times
# patiets_df is a file with patiens data

def get_sunrise(x):
    sunrise = dates_df[dates_df['date'] = x['date']].sunrise_time
    return sunrise

def get_sunset(x):
    sunset = dates_df[dates_df['date'] = x['date']].sunset_time
    return sunset

# add columns for sunrise and sunset to patients_df

patients_df['sunrise']=patients_df.apply(get_sunrise, axis = 1)
patients_df['sunset']=patients_df.apply(get_sunset, axis = 1)

# checking every admission time from patients_df if it is after sunset and before sunrise
patients_df['is_night'] = patients_df.apply(lambda x: x.time < x.sunrise and x.time > x.sunset, axis=1)