在下面的代码中,我使用xlsx文件并确定基于4个不同的日期/时间列的手术是否重叠。一切都很好,除了它的末尾,我试图做下面的事情,这是我在最后两行中试图做的。新列基于for循环的结果,保留DfResults中声明的原始数据框中的所有列。
- 新建列"重叠状态">
- 如果冲突== True则新列的值为"overlapped">
- 如果冲突== False则新列中的值为"未重叠">
import pandas as pd
df1 = pd.read_excel(r'DirectoryFile.xlsx')
dfResults = df1.loc[(df1['conflict'] == True),
['LOG ID','Patient MRN',
'Providers Name', 'Surgery Date', 'Incision Start', 'Incision Close', 'Sedation Start', 'Case Finish']]
print(dfResults)
#df1.loc[:,'Overlap Status'] = df1.loc[(df1['conflict'] == True), "Overlapped"]
#df1.loc[:,'Overlap Status'] = df1.loc[(df1['conflict'] == False), "Did not Overlap"]
预期输出:
日志ID | 患者MRN | 提供者名称 | 手术日期 | 切口开始 | 切口闭合 | 镇静开始病例结束 | 重叠状态 | 123 | ABC | T,乔治 | 9/2/2021 | 9/2/2021 43点 | 9/2/2021 27点 | 9/2/2021下午2:14 | 重叠 |
---|---|---|---|---|---|---|---|---|
456 | DEF | T,乔治 | 9/2/2021 | 9/2/2021下午1:46 | 下午3:20 9/2/2021 | 9/2/2021下午3:41 | 重叠 | |
789 | GEF | 年代,史蒂文 | 9/1/2021 | 9/1/2021 9点 | 9/1/2021 10点 | 没有重叠 |
我明白了…只能用numpy
df1['Overlap Status'] = np.where(df1['conflict'] == True, 'Overlapped', 'Did not overlap')
df1.drop(['Start', 'End', 'SedStart', 'conflict'], axis=1, inplace=True)