我正在尝试读取Excel,并将数据写入包含新列的新Excel中。
这是一个示例Excel module
:请忽略表格格式
+-------+------+------+
| Col1 | Col2 | Col3 |
+-------+------+------+
| Prod1 | "ABC | 100 |
XYZ"
| Prod2 | Test | 200 |
+-------+------+------+
我读取了这个excel,并通过以下方式在dataframe中添加了一个新列:
df = pd.read_excel(module)
df["Status"] = ""
我通过以下方式在新列中添加一个值:
rowIndex = df.index[df['Col1'] == 'Prod1'].tolist()
df.loc[rowIndex, 'Status'] = 'Yes'
我通过以下方式在新的excel中编写此df
:
df.to_excel("output.xlsx", index = None, header=True)
但在New excel中,数据如下所示:
+-------+----------+------+-------+
| Col1 | Col2 | Col3 | Status|
+-------+----------+------+-------+
| Prod1 | "ABCXYZ" | 100 | Yes |
| Prod2 | Test | 200 | |
+-------+----------+------+-------+
如您所见,"ABCXYZ"
只有一行代码。我希望它是在多行,因为它是在旧的excel。在新的excel中写入数据时,我可以对代码进行哪些更改以保留此格式?
附注:在调试过程中,我发现df
的值是"ABC\nXYZ"
,但它仍然是一行代码。
发布于 2019-12-10 18:36:26
我找到了下面的python库,它帮助我实现了格式化:
from StyleFrame import StyleFrame, Styler, utils
StyleFrame(df, styler_obj=Styler(horizontal_alignment=utils.horizontal_alignments.left, font = utils.fonts.calibri)).to_excel("output4.xlsx", index = None, header=True).save()
https://stackoverflow.com/questions/59264311
复制相似问题