哈岁NB 发表于 2023-7-22 10:33:43

写入csv

请问这个该如何写入才能使CSV文件里的是011111,而不是把最前面的0省略掉
import pandas as pd
list_1 = [{'名称':'011111'}]
df = pd.DataFrame(list_1)
df.to_csv('./fund.csv',mode='a',index=False,encoding='utf-8-sig')

Mike_python小 发表于 2023-7-22 10:33:50

你好!要保持 CSV 文件中的内容为 011111,而不省略前面的零,你可以通过设置 Pandas 的参数来实现。

以下是修改后的代码示例:


import pandas as pd

list_1 = [{'名称':'011111'}]
df = pd.DataFrame(list_1)

# 设置 'quotechar' 参数为 ''
df.to_csv('./fund.csv', mode='a', index=False, encoding='utf-8-sig', quotechar='')



通过将 quotechar 参数设置为空字符 '',可以防止 Pandas 在写入 CSV 文件时自动添加引号,从而保持字段内容的原始格式。

希望能帮助到你!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

isdkz 发表于 2023-7-22 10:34:15

本帖最后由 isdkz 于 2023-7-22 10:35 编辑

这个问题的根源在于Python解释器会默认把以0开头的数字当作整数来处理,因此它会自动省略这个0。为了在CSV文件里保存'011111',您需要确保Python把它视为字符串,而不是整数。为此,您可以使用str函数把它转换成字符串。

这里有一个简单的方法:

首先,使用字符串类型的数据创建DataFrame,而不是整数类型。确保在创建DataFrame的时候,您的字典中的值是字符串类型。如果您的数据是整数类型,您可以在添加到字典之前,使用Python的str函数将其转换为字符串。例如:

list_1 = [{'名称': '011111'}]
df = pd.DataFrame(list_1)

在上述代码中,'011111'被引号包围,所以Python会将其视为字符串,而不是整数。

然后,使用 to_csv 函数将DataFrame写入CSV文件。您的代码中已经包含了这一部分。这将确保您的数据被正确地写入文件。

这就是所有的步骤。最后的代码可能是这样的:

import pandas as pd

list_1 = [{'名称': '011111'}]
df = pd.DataFrame(list_1)
df.to_csv('./fund.csv', mode='a', index=False, encoding='utf-8-sig')


希望这个答案对您有所帮助!

哈岁NB 发表于 2023-7-22 10:37:52

isdkz 发表于 2023-7-22 10:34
这个问题的根源在于Python解释器会默认把以0开头的数字当作整数来处理,因此它会自动省略这个0。为了在CSV ...

不行,还是省略了0

哈岁NB 发表于 2023-7-22 10:40:47

Mike_python小 发表于 2023-7-22 10:33
你好!要保持 CSV 文件中的内容为 011111,而不省略前面的零,你可以通过设置 Pandas 的参数来实现。

以下 ...

报错了{:10_266:}

哈岁NB 发表于 2023-7-22 10:41:29

陶远航 发表于 2023-7-22 10:34
你好!根据你提供的代码,问题出在 to_csv() 方法中的参数 index=False 上。这个参数会导致在 CSV 文件中不 ...

还是不行,变成这样了{:10_250:}

Mike_python小 发表于 2023-7-22 10:42:59

哈岁NB 发表于 2023-7-22 10:40
报错了

报错信息能复制一下吗?

哈岁NB 发表于 2023-7-22 10:46:44

Mike_python小 发表于 2023-7-22 10:42
报错信息能复制一下吗?

这个Traceback (most recent call last):
File "D:\技能\python\4.py", line 5, in <module>
    df.to_csv('./fund.csv', mode='a', index=False, encoding='utf-8-sig', quotechar='')
File "D:\技能\python\venv\lib\site-packages\pandas\util\_decorators.py", line 211, in wrapper
    return func(*args, **kwargs)
File "D:\技能\python\venv\lib\site-packages\pandas\core\generic.py", line 3720, in to_csv
    return DataFrameRenderer(formatter).to_csv(
File "D:\技能\python\venv\lib\site-packages\pandas\util\_decorators.py", line 211, in wrapper
    return func(*args, **kwargs)
File "D:\技能\python\venv\lib\site-packages\pandas\io\formats\format.py", line 1189, in to_csv
    csv_formatter.save()
File "D:\技能\python\venv\lib\site-packages\pandas\io\formats\csvs.py", line 251, in save
    self.writer = csvlib.writer(
TypeError: quotechar must be set if quoting enabled

Mike_python小 发表于 2023-7-22 10:49:50

哈岁NB 发表于 2023-7-22 10:46
这个

根据你提供的代码和错误信息,问题出现在启用引号分隔时,quotechar参数必须被设置。在你的代码中,你将quotechar参数设置为空字符串'',这导致了该错误。

要解决这个问题,你可以将quotechar设置为一个非空字符,如双引号"。此外,你还需要设置引号分隔,可以通过将quoting参数设置为csv.QUOTE_MINIMAL来实现。

下面是修改后的示例代码:

import pandas as pd
import csv

list_1 = [{'名称':'011111'}]
df = pd.DataFrame(list_1)

# 将DataFrame保存为CSV文件
df.to_csv('./fund.csv', mode='a', index=False, encoding='utf-8-sig', quotechar='"', quoting=csv.QUOTE_MINIMAL)


请注意,以上示例代码假设你的DataFrame名为df,并且你希望将其保存为名为fund.csv的文件。你可以根据自己的实际情况进行相应的修改。

哈岁NB 发表于 2023-7-22 10:51:51

Mike_python小 发表于 2023-7-22 10:49
根据你提供的代码和错误信息,问题出现在启用引号分隔时,quotechar参数必须被设置。在你的代码中,你 ...

它还是没保存最前面的0{:10_266:}

Mike_python小 发表于 2023-7-22 10:52:50

哈岁NB 发表于 2023-7-22 10:51
它还是没保存最前面的0

{:10_257:}我再问问GPT

Mike_python小 发表于 2023-7-22 10:53:29

哈岁NB 发表于 2023-7-22 10:51
它还是没保存最前面的0

import pandas as pd

list_1 = [{'名称':'011111'}]
df = pd.DataFrame(list_1)

# 将"名称"列的数据类型设置为字符串
df['名称'] = df['名称'].astype(str)

# 将DataFrame保存为CSV文件,并确保前导零不会被省略
df.to_csv('./fund.csv', mode='a', index=False, encoding='utf-8-sig')

Mike_python小 发表于 2023-7-22 10:54:38

https://c.binjie.fun/#/chat/1689947147516
这个是GPT,你可以去问问

哈岁NB 发表于 2023-7-22 10:55:20

Mike_python小 发表于 2023-7-22 10:53
import pandas as pd

list_1 = [{'名称':'011111'}]


还是不行{:10_266:}

哈岁NB 发表于 2023-7-22 10:57:11

Mike_python小 发表于 2023-7-22 10:54
https://c.binjie.fun/#/chat/1689947147516
这个是GPT,你可以去问问

好的,感谢感谢

isdkz 发表于 2023-7-22 10:58:43

哈岁NB 发表于 2023-7-22 10:55
还是不行

https://blog.csdn.net/biggolden1/article/details/127819495

哈岁NB 发表于 2023-7-22 11:01:21

isdkz 发表于 2023-7-22 10:58
https://blog.csdn.net/biggolden1/article/details/127819495

解决了,感谢感谢
页: [1]
查看完整版本: 写入csv