csv Python -从数据框列中删除隐藏字符?

2lpgd968  于 2023-04-27  发布在  Python
关注(0)|答案(1)|浏览(139)

我有一个dataframe,当我将数据导出到csv时,我得到了一些奇怪的结果。
下面是一个例子:

df = pd.DataFrame()

df['Dates'] = ['Day 1', '10pm', 'Day 2', '7pm', 'Day 3', '6pm']
df['Data'] = ['7½o-20', '-278/+222', '8o-15', '-109/-101', '8½u-15', '-195/+162']

现在有了这些数据,我将其导出到csv,但“数据”值更改/添加了字符。我在代码编辑器中看不到这些字符,但可能它们是隐藏字符?
所以csv中的列看起来像这样:
| 日期|数据|
| --------------|--------------|
| 第一天|7 ½o-20|
| 晚上10点| -1.15225 |
| 第二天|8o-15|
| 晚上7点|1.079208|
| 第三天|8 ½u-15|
| 下午六时| -1.2037 |
因此,对于包含½的数据值,excel会在½前面添加一个符号。然后对于带有正斜杠的数据,excel会添加一个等号,然后将数据视为等式。
我不知道为什么会发生这种情况,但我希望数据显示就像它在我的代码编辑器中一样。

oxiaedzo

oxiaedzo1#

您可以使用="" Package Data列,以防止Excel将其视为公式。这是告诉Excel将条目视为返回引号内文本的公式。代码如下所示:

df.Data = df.Data.apply('="{}"'.format)

使用to_csv()方法修复Â问题时,可以使用utf-8-sig编码:

df.to_csv('file.csv',encoding='utf-8-sig', index=False)

以下是修改后file.csv的内容:
| 日期|数据|
| --------------|--------------|
| 第一天|7½o-20|
| 晚上10点|电话:+86 -21 - 8888888|
| 第二天|8o-15|
| 晚上7点|-109/-101|
| 第三天|8½u-15|
| 下午6点|-195/+162|

相关问题