使用panda在csv文件中写入数据



我正在尝试将数据写入csv文件其他所有字段都写得很好,但不是日期字段。有人能解释一下出了什么问题吗

这是我的代码

def-writeData(self(:

query_string=f'https://query1.finance.yahoo.com/v7/finance/download/{self.ticker}?period1={self.period1}&period2={self.period2}&interval={self.interval}&events=history&includeAdjustedClose=true'.format(ticker=self.ticker,period1=self.period1,period2=self.period2,interval=self.interval)
filename="C:\Users\BRBCO\Downloads\out.csv"
url = query_string.replace(" ","")   
df=pd.read_csv(url)
df.columns= df.columns.str.lower() 
df.to_csv(filename,encoding='utf-8',date_format='%s') 

这是csv文件的输出

在此处输入图像描述

98%的情况下,原因是CSV是直接用Excel打开的,因此适用Microsoft标准。

当单元格内容太宽而无法在单元格中显示时,Excel总是显示哈希标记。可以通过加宽相应的列来解决此问题。

一般

  • 如果要使用Excel,请转换DataFrame.to_excel()或打开Excel,通过菜单项"数据"导入CSV文件,并对解释列值进行调整。

  • 否则,您应该在文本编辑器中打开CSV,它将相应地显示值。

首先,屏幕截图中的B列不够宽,所以所有值都显示########,我们不可能看到实际的输出值。

其次,确保在读取文件时,日期时间值实际上被解释为日期时间数据类型。因此,将dayfirst=True, parse_dates=True添加到read_csv中,并根据您的数据尝试将dayfirst参数更改为True/False。

最后,当将日期时间值写入CSV时,使用ISO格式YYYY-MM-DD总是更容易,例如2022-03-31,因为这是明确的,不依赖于任何任意的系统设置。您可以通过在write_csv中设置date_format来写入ISO日期。

filename="C:\Users\BRBCO\Downloads\out.csv"
url = query_string.replace(" ", "")   
df=pd.read_csv(url, dayfirst=True, parse_dates=True)
df.columns = df.columns.str.lower() 
df.to_csv(filename, encoding='utf-8', date_format='%Y-%m-%d') 

最新更新