Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.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 将时间与熊猫进行比较,并根据结果更改字体_Python_Python 3.x_Cell_Xlsxwriter - Fatal编程技术网

Python 将时间与熊猫进行比较,并根据结果更改字体

Python 将时间与熊猫进行比较,并根据结果更改字体,python,python-3.x,cell,xlsxwriter,Python,Python 3.x,Cell,Xlsxwriter,我需要更改单元格的颜色,如果它的值小于08:00:00,它对整数有效,但对字符串无效 import xlsxwriter workbook = xlsxwriter.Workbook('test.xlsx') worksheet1 = workbook.add_worksheet() # Add a format. Light red fill with dark red text. format1 = workbook.add_format({'bg_color': '#FFC7CE',

我需要更改单元格的颜色,如果它的值小于08:00:00,它对整数有效,但对字符串无效

import xlsxwriter

workbook = xlsxwriter.Workbook('test.xlsx')
worksheet1 = workbook.add_worksheet()


# Add a format. Light red fill with dark red text.
format1 = workbook.add_format({'bg_color': '#FFC7CE',
                               'font_color': '#9C0006'})

# Add a format. Green fill with dark green text.
format2 = workbook.add_format({'bg_color': '#C6EFCE',
                               'font_color': '#006100'})


import pandas as pd

data= pd.DataFrame({'Time':['07:02:07', '15:16:55', '15:17:20', '15:28:58','15:32:28','15:38:54'],
 'Payload':['[0]->[1]', '[1]->[0]','[0]->[1]','[0]->[1]','[1]->[0]','[0]->[1]']})

caption = ('Cells with values >= 08:00:00 are in light red. '
           'Values < 50 are in light green.')

# Write the data.
worksheet1.write('A1', caption)

for row, row_data in enumerate(data):
    worksheet1.write_row(row + 2, 1, row_data)

if len (data) >0:    
    for i in range (len(data)):

        worksheet1.write('D'+str(i+5),(data['Time'].iloc[i]))
        worksheet1.write('E'+str(i+5),(data['Payload'].iloc[i]))




# Write a conditional format over a range.
worksheet1.conditional_format('D5:D12', {'type': 'cell',
                                         'criteria': '>=',
                                         'value': '08:00:00',
                                         'format': format1})

workbook.close()
导入xlsxwriter
工作簿=xlsxwriter.workbook('test.xlsx')
工作表1=工作簿。添加工作表()
#添加格式。浅红色填充深红色文本。
format1=工作簿。添加_格式({'bg_color':'#FFC7CE',
“字体颜色”:“#9C0006”})
#添加格式。绿色填充深绿色文本。
format2=工作簿。添加_格式({'bg_color':'C6EFCE',
'字体颜色':'#006100'})
作为pd进口熊猫
data=pd.DataFrame({'Time':['07:02:07','15:16:55','15:17:20','15:28:58','15:32:28','15:38:54'],
'有效负载':['[0]->[1]'、'[1]->[0]'、'[0]->[1]'、'[0]->[1]'、'[1]->[0]'、'[0]->[1]']})
标题=(“值>=08:00:00的单元格显示为浅红色。”
“小于50的值为浅绿色。”)
#写下数据。
工作表1.书写('A1',标题)
对于行,枚举(数据)中的行\数据:
工作表1.写入行(行+2、1、行数据)
如果len(数据)>0:
对于范围内的i(len(数据)):
工作表1.写入('D'+str(i+5),(数据['Time'].iloc[i]))
工作表1.write('E'+str(i+5),(数据['Payload'].iloc[i]))
#在一个范围内写入条件格式。
工作表1.条件_格式('D5:D12',{'type':'cell',
“条件”:“>=”,
“值”:“08:00:00”,
“格式”:format1})
工作簿.关闭()

上面的代码只是一个示例,在我的原始代码中,时间是先前计算的结果。

代码中存在许多问题,但主要问题是像“07:02:07”这样的值是字符串,而不是日期/时间

为了让它们在Excel中像时间一样工作,需要将它们转换为datetime对象。在那之后,程序应该会工作。下面是一个带有一些修复程序的示例:

导入xlsxwriter
导入日期时间
工作簿=xlsxwriter.workbook('test4.xlsx')
工作表1=工作簿。添加工作表()
#添加格式。浅红色填充深红色文本。
format1=工作簿。添加_格式({'bg_color':'#FFC7CE',
“字体颜色”:“#9C0006”})
#添加格式。绿色填充深绿色文本。
format2=工作簿。添加_格式({'bg_color':'C6EFCE',
'字体颜色':'#006100'})
作为pd进口熊猫
data=pd.DataFrame({'Time':[datetime.Time(7,2,7),datetime.Time(15,16,55),
datetime.time(15,17,20),datetime.time(15,28,58),
datetime.time(15,32,28),datetime.time(15,38,54)],
'有效负载':['[0]->[1]'、'[1]->[0]'、'[0]->[1]',
'[0]->[1]','[1]->[0]','[0]->[1]']})
标题=(“值>=08:00:00的单元格显示为浅红色。”
“小于50的值为浅绿色。”)
#写下数据。
工作表1.书写('A1',标题)
对于行,枚举(数据)中的行\数据:
工作表1.写入(第2行、第1行、第u行数据)
时间\格式=工作簿。添加\格式({'num\格式':'hh:mm::ss'})
如果len(数据)>0:
对于范围内的i(len(数据)):
工作表1.write('D'+str(i+5),(数据['Time'].iloc[i]),时间格式)
工作表1.write('E'+str(i+5),(数据['Payload'].iloc[i]))
#在一个范围内写入条件格式。
工作表1.条件_格式('D5:D12',{'type':'date',
“条件”:“>=”,
“值”:datetime.time(8,0,0),
“格式”:format1})
工作簿.关闭()
输出:


代码中存在许多问题,但主要问题是像“07:02:07”这样的值是字符串,而不是日期/时间

为了让它们在Excel中像时间一样工作,需要将它们转换为datetime对象。在那之后,程序应该会工作。下面是一个带有一些修复程序的示例:

导入xlsxwriter
导入日期时间
工作簿=xlsxwriter.workbook('test4.xlsx')
工作表1=工作簿。添加工作表()
#添加格式。浅红色填充深红色文本。
format1=工作簿。添加_格式({'bg_color':'#FFC7CE',
“字体颜色”:“#9C0006”})
#添加格式。绿色填充深绿色文本。
format2=工作簿。添加_格式({'bg_color':'C6EFCE',
'字体颜色':'#006100'})
作为pd进口熊猫
data=pd.DataFrame({'Time':[datetime.Time(7,2,7),datetime.Time(15,16,55),
datetime.time(15,17,20),datetime.time(15,28,58),
datetime.time(15,32,28),datetime.time(15,38,54)],
'有效负载':['[0]->[1]'、'[1]->[0]'、'[0]->[1]',
'[0]->[1]','[1]->[0]','[0]->[1]']})
标题=(“值>=08:00:00的单元格显示为浅红色。”
“小于50的值为浅绿色。”)
#写下数据。
工作表1.书写('A1',标题)
对于行,枚举(数据)中的行\数据:
工作表1.写入(第2行、第1行、第u行数据)
时间\格式=工作簿。添加\格式({'num\格式':'hh:mm::ss'})
如果len(数据)>0:
对于范围内的i(len(数据)):
工作表1.write('D'+str(i+5),(数据['Time'].iloc[i]),时间格式)
工作表1.write('E'+str(i+5),(数据['Payload'].iloc[i]))
#在一个范围内写入条件格式。
工作表1.条件_格式('D5:D12',{'type':'date',
“条件”:“>=”,
“值”:datetime.time(8,0,0),
“格式”:format1})
工作簿.关闭()
输出: