写入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')
你好!要保持 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: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')
希望这个答案对您有所帮助!
isdkz 发表于 2023-7-22 10:34
这个问题的根源在于Python解释器会默认把以0开头的数字当作整数来处理,因此它会自动省略这个0。为了在CSV ...
不行,还是省略了0 Mike_python小 发表于 2023-7-22 10:33
你好!要保持 CSV 文件中的内容为 011111,而不省略前面的零,你可以通过设置 Pandas 的参数来实现。
以下 ...
报错了{:10_266:} 陶远航 发表于 2023-7-22 10:34
你好!根据你提供的代码,问题出在 to_csv() 方法中的参数 index=False 上。这个参数会导致在 CSV 文件中不 ...
还是不行,变成这样了{:10_250:} 哈岁NB 发表于 2023-7-22 10:40
报错了
报错信息能复制一下吗?
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 哈岁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的文件。你可以根据自己的实际情况进行相应的修改。 Mike_python小 发表于 2023-7-22 10:49
根据你提供的代码和错误信息,问题出现在启用引号分隔时,quotechar参数必须被设置。在你的代码中,你 ...
它还是没保存最前面的0{:10_266:} 哈岁NB 发表于 2023-7-22 10:51
它还是没保存最前面的0
{:10_257:}我再问问GPT
哈岁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')
https://c.binjie.fun/#/chat/1689947147516
这个是GPT,你可以去问问 Mike_python小 发表于 2023-7-22 10:53
import pandas as pd
list_1 = [{'名称':'011111'}]
还是不行{:10_266:} Mike_python小 发表于 2023-7-22 10:54
https://c.binjie.fun/#/chat/1689947147516
这个是GPT,你可以去问问
好的,感谢感谢 哈岁NB 发表于 2023-7-22 10:55
还是不行
https://blog.csdn.net/biggolden1/article/details/127819495
isdkz 发表于 2023-7-22 10:58
https://blog.csdn.net/biggolden1/article/details/127819495
解决了,感谢感谢
页:
[1]