所以我有使用pandas的ExcelWriter输出到excel文件的数据.将整个数据输出到Excel文件后,使用Python以编程方式应用条件格式的最简单方法是什么?
我希望能够在Excel表格中选择(在Excel中)所有填充单元格并单击"条件格式">颜色标度等效(通过Python).最终结果是基于值的渐变颜色,如果你愿意的话,是"热图".
这就是我正在做的生成数据:
writer = ExcelWriter('Data' + today +'.xls')
... processing data ...
df.to_excel(writer, sheet_name = 'Models', startrow = start_row, index=False)
Run Code Online (Sandbox Code Playgroud)
写入数据后,我需要一种方法来使用python应用条件格式.为了简单起见,我希望颜色为深蓝色,值为正(> 0),红色越深,值越负(<0),如果是,则单元格为白色值为0.
我试着查看xlsxwriter(希望能够在创建后修改excel文件),但在文档中它说"It [XLSXwriter]无法读取或修改现有的Excel XLSX文件."
如果您能想出解决方案或指出我正确的方向,请告诉我.
所以我的代码如下:
df['Dates'][df['Dates'].index.month == 11]
Run Code Online (Sandbox Code Playgroud)
我正在做一个测试,看看我是否可以过滤几个月,所以它只显示11月的日期,但这不起作用.它给出了以下错误:AttributeError:'Int64Index'对象没有属性'month'.
如果我做
print type(df['Dates'][0])
Run Code Online (Sandbox Code Playgroud)
然后我得到类'pandas.tslib.Timestamp',这让我相信存储在数据帧中的对象类型是Timestamp对象.(我不确定"Int64Index"来自哪里......以前的错误)
我想要做的是:数据框列包含从2000年代早期到现在的日期格式:dd/mm/yyyy.我想仅在11月15日到3月15日期间过滤日期,与年份无关.最简单的方法是什么?
谢谢.
这是df ['Dates'](带索引):
0 2006-01-01
1 2006-01-02
2 2006-01-03
3 2006-01-04
4 2006-01-05
5 2006-01-06
6 2006-01-07
7 2006-01-08
8 2006-01-09
9 2006-01-10
10 2006-01-11
11 2006-01-12
12 2006-01-13
13 2006-01-14
14 2006-01-15
...
Run Code Online (Sandbox Code Playgroud) 所以我从 sklearn 得到了以下代码:
>>> from sklearn import cross_validation
>>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
>>> y = np.array([1, 2, 3, 4])
>>> kf = cross_validation.KFold(4, n_folds=2)
>>> len(kf)
2
>>> print(kf)
sklearn.cross_validation.KFold(n=4, n_folds=2, shuffle=False,
random_state=None)
>>> for train_index, test_index in kf:
... print("TRAIN:", train_index, "TEST:", test_index)
... X_train, X_test = X[train_index], X[test_index]
... y_train, y_test = y[train_index], y[test_index]
TRAIN: [2 3] TEST: [0 1]
TRAIN: [0 1] TEST: [2 3]
.. automethod:: __init__
Run Code Online (Sandbox Code Playgroud)
当我在这些代码行中传递 train_index …