当前位置: 首页 > 知识库问答 >
问题:

为什么pandas read_ csv不使用我的dateparser?

金皓君
2023-03-14
import numpy as np
import pandas as pd

def myDateParser(d):
    #in format: 10/02/2018, out format: 181002
    print("into myDateParser with ",d)
    return(d[8:]+d[0:2]+d[3:5])

nd=myDateParser('10/02/2018')
print("nd=",nd)


rawDataFile="Transactions.CSV"
data = pd.read_csv(rawDataFile, header=1, usecols=[0,1,2,3,4,5,6,7], 
parse_dates=True, date_parser=myDateParser) 
print(data.head())

在不应用我的日期解析器的情况下给出结果

into myDateParser with  10/02/2018
nd= 181002
         Date        Action    ...    Fees & Comm    Amount
0  10/02/2018           Buy    ...          $3.95  -$281.24
1  10/02/2018  Sell to Open    ...          $5.60   $184.40
2  10/02/2018          Sell    ...          $3.99  $2799.59
3  10/02/2018  Buy to Close    ...          $5.60  -$735.60
4  10/02/2018           Buy    ...          $3.95  -$319.95

[5 rows x 8 columns]

显然我不明白https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html的指示

共有2个答案

鲜于俊侠
2023-03-14
  • 不需要使用字符串切片创建自定义函数
df = pd.read_csv('data.csv', parse_dates=['Date'])
df.Date = df.Date.apply(lambda x: x.strftime('%y%m%d'))

      Date            Action    Fees & Comm    Amount
0   181002               Buy          $3.95   -281.24
1   181002      Sell to Open          $5.60    184.40
2   181002              Sell          $3.99   2799.59
3   181002      Buy to Close          $5.60   -735.60
4   181002               Buy          $3.95   -319.95
东郭京
2023-03-14

我想您正在寻找转换器

pd.read_csv(r'File.csv', converters ={'Data':myDateParser}) 

     Data
0  181002
1  181002
2  181002
3  181002

另请查看此处date_parser

 类似资料:
  • 这是我的束缚 错误在于 /Users/X/AndroidStudioProjects/Corotuines/app/build/generated/source/kapt/debug/com/example/corotuines/application/ApplicationMain_HiltComponents.java:126:错误:[Dagger/Mis的绑定]com.example.cor

  • 从TensorArray读取: 使用: 问题: 回溯(最近一次调用last):RLU培训中第130行的文件“\main.py”。train()文件“C:\Users\user\Documents\Projects\rl toolkit\rl_training.py”,第129行,在train self中_rpm,赛尔夫。批量大小,自行确定。梯度步数,记录步数b=self。在call result=

  • 我在Android Studio中有一个项目,通过使用,它的一部分将变得更加简单。但是,每次尝试使用var时,都会出现一个错误:。我的代码:

  • 我的mavensettings.xml如下,如你所见,没有超文本传输协议repository url,所有repository url都是以https开头的。 当我执行 gradle 构建时,它说我使用不安全的协议。事实上,我从来没有在我的专家设置中使用过http协议.xml。我们可以看到所有存储库 URL 都以“https://”开头。任何人都可以给我一些建议吗? 我的gradle版本是7.4部

  • Stage.close()对我不起作用。 我查看了:JavaFX2.0:关闭一个舞台(窗口) 这是我的代码: 下面是调用消息框类的代码:

  • 问题内容: 我是一个完整的初学者。 我已阅读了有关解决方案的Google文档。我在互联网上搜索了同样的内容。 但。一切似乎都是技术性的。 据我了解,.Flush有助于在功能出现时立即执行这些功能,而无需将它们捆绑在一起。 我对吗? 如果不是的话,外行人的含义是什么?并请举一个简单的例子。谢谢。 问题答案: 程序员在希望确保在继续之前将先前代码的输出和/或效果写入电子表格时会使用。如果您不这样做,则