基于for循环创建新列



在下面的代码中,我使用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"]

预期输出:

镇静开始tbody> <<tr>下午3:20 9/2/2021
日志ID患者MRN提供者名称手术日期切口开始切口闭合病例结束重叠状态
123ABCT,乔治9/2/20219/2/2021 43点9/2/2021 27点9/2/2021下午2:14重叠
456DEFT,乔治9/2/20219/2/2021下午1:469/2/2021下午3:41重叠
789GEF年代,史蒂文9/1/20219/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)

相关内容

  • 没有找到相关文章

最新更新