Pandas不能同时识别数值和l

2024-09-26 22:50:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,在处理过程中遇到了一点停顿。你知道吗

它的功能:读入CSV文件,进行一些重新排列,输出具有重新排列的列和值的新文件。你知道吗

问题是:我的输出CSV必须是一种特定的格式,这样才能正确使用。。这包括所有值(包括标题)周围的引号和填充值(带空格)。你知道吗

我用熊猫做所有的计算 重要的逻辑是:

 df['QUANTITY1'] = df['QUANTITY1'].astype(str).apply(lambda x: x.ljust(7)).astype(object)
 df['QUANTITY2'] = df['QUANTITY2'].astype(str).apply(lambda x: x.ljust(7)).astype(object)

这些数量值是浮点数,所以为了应用空格填充(ljust),我必须将其转换为字符串。你知道吗

当我去输出csv并编写它时,我使用的是这样的东西:

df.to_csv(writeFileTo, sep=',', encoding='utf-8', index=False, quoting=csv.QUOTE_NONNUMERIC, columns=['STATUS'.ljust(20),'TIME'.ljust(25), 'QUANTITY1', 'QUANTITY1'])

输出效果很好,但问题是QUANTITY1和QUANTITY2列包含带引号的输出(我认为这是因为csv.QUOTE\u非数字将该列视为字符串,而不是数字)。你知道吗

所以。。。我决定将这两列改回floats,这样输出中就不会有引号了。问题2:当我将值更改为float时,它们不会保留间距(ljust)。我该怎么做来保持间距,但也有熊猫不输出引号?!你知道吗

TLDR;我需要在csv输出中使用ljust或rjust float数字


Tags: 文件csvlambdadfobject数字引号apply

热门问题