如果我用类似的东西切片数据帧
>>> df = pd.DataFrame(data=[[x] for x in [1,2,3,5,1,3,2,1,1,4,5,6]], columns=['A'])
>>> df.loc[df['A'] == 1]
# or
>>> df[df['A'] == 1]
A
0 1
4 1
7 1
8 1
Run Code Online (Sandbox Code Playgroud)
我怎么能用 1 的缓冲区填充我的选择并获得每个索引0, 1, 3, 4, 5, 6, 7, 8, 9?我想选择列中'A'值为 1 的所有行,以及任何此类行之前或之后的行。
编辑我希望找出一种适用于任意焊盘尺寸的解决方案,而不仅仅是焊盘尺寸为 1。
编辑 2这是另一个例子,说明我要做什么
df = pd.DataFrame(data=[[x] for x in [1,2,3,5,3,2,1,1,4,5,6,0,0,3,1,2,4,5]], columns=['A'])
Run Code Online (Sandbox Code Playgroud)
我们正在寻找pad == 2. 在这种情况下,我会尝试 fetch rows 0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, …
我正在开发一个程序,其中一个需要的功能是获取一个 Pandas 数据框并将其导出到 excel。这部分工作正常。但是,在导出时,我需要一些单元格将它们的文本旋转为垂直而不是默认的水平排列。
这是我到目前为止所拥有的:
output = BytesIO()
writer = pd.ExcelWriter(output, engine='xlsxwriter')
filename = "Data for {} at {} on {}".format(item_no, loc, date)
columns = [('A:A', 18),
('B:B', 4),
('C:C', 18),
('D:Y', 20),
('Z:Z', 18),
('AA:AA', 12),
('AB:AB', 18),
('AC:AC', 12),
('AD:AD', 4),
('AE:AF', 18),
('AG:AG', 11),
('AH:AK', 16),
('AL:AL', 10),
('AM:AN', 14.5)]
df = fetch_data(item_no, loc, date)
df.to_excel(writer, index=False, sheet_name='Sheet1')
for col, width in columns:
writer.sheets['Sheet1'].set_column(col, width)
writer.save()
writer.close()
output.seek(0)
Run Code Online (Sandbox Code Playgroud)
我知道 xlsxwriter 库有,format.set_rotation()但据我所知,这仅在您使用时使用,worksheet.write(..., format) …