【问题标题】:Unexpected behaviour while outputting file in python在 python 中输出文件时出现意外行为
【发布时间】:2022-08-05 22:22:48
【问题描述】:

我有以下代码:

import csv
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list(\'ABCD\'))

for x in range(10, 11): 
    df.to_csv(\"file_%x.csv\" % x, index=False)

代码没有返回file_10.csv,而是返回file_a.csv。为什么会这样?我在循环中检查了x 的值,它确实是10,那为什么它被转换为\'a\'?

  • 使用这个\"file_{0}.csv\".format(x) 而不是这个\"file_%x.csv\" % x

标签: python pandas


【解决方案1】:

旧的 % 风格的 string formatting 主要使用 C 派生指令。 %x 指示格式化程序以十六进制打印数字,所以 10a。使用%s 以默认方式进行字符串化。

df.to_csv("file_%s.csv" % x, index=False)

或者,如果您使用的是 Python 3.5+(您应该使用),则更好的是使用 f-strings

df.to_csv(f"file_{x}.csv", index=False)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2021-09-28
    相关资源
    最近更新 更多