【问题标题】:Zoned timestamp format conversion in PythonPython中的分区时间戳格式转换
【发布时间】:2019-12-25 10:15:34
【问题描述】:

我的文件有如下数据

a,b,d,f,e,2014-09-16T01:57:48.295Z,2017-07-13T02:01:03.059Z
s,d,fe,r,t,2014-09-17T01:57:48.295Z,2017-07-23T02:01:03.059Z
wa,db,td,yf,de,2013-09-26T01:57:48.295Z,2017-07-13T02:01:03.059Z
aws,dedr,tgyfe,juir,ttt,2018-09-17T01:57:48.295Z,2017-07-23T02:01:03.059Z

在时间戳字段中,将“T”替换为空格,并删除“Z”部分。

我曾经收到过包含大量数据的 json 文件。只需要 .csv 格式的一些列。我可以提取 .csv 格式的字段。但无法进行日期格式转换。

# load json in panda dataframe
# parses through the json (normalize)
# filter required columns and write into .csv file
# remove the index field (first column) 


def conversion():
    data_set = pd.read_json("/a/b/c.json")
    normalized_data = json_normalize(data_set['data'])
    new_data=pd.DataFrame(normalized_data['data'].values.tolist())
    filtered_data = new_data[["f1","f2","f3","f4","f5","date1","date2"]]
    filtered_data.to_csv("/a/b/c/file1.csv",index=False)

conversion()

预期输出是

a,b,d,f,e,2014-09-16 01:57:48,2017-07-13 02:01:03
s,d,fe,r,t,2014-09-17 01:57:48,2017-07-23 02:01:03 
wa,db,td,yf,de,2013-09-26 01:57:48,2017-07-13 02:01:03 
aws,dedr,tgyfe,juir,ttt,2018-09-17 01:57:48,2017-07-23 02:01:03

【问题讨论】:

    标签: python pandas csv date format


    【解决方案1】:

    将值转换为datetime64[s]

    df['date1'] = df['date1'].astype('datetime64[s]')
    df['date2'] = df['date2'].astype('datetime64[s]')
    
        f1  f2  f3  f4  f5  date1   date2
    0   a   b   d   f   e   2014-09-16 01:57:48 2017-07-13 02:01:03
    1   s   d   fe  r   t   2014-09-17 01:57:48 2017-07-23 02:01:03
    2   wa  db  td  yf  de  2013-09-26 01:57:48 2017-07-13 02:01:03
    3   aws dedr    tgyfe   juir    ttt 2018-09-17 01:57:48 2017-07-23 02:01:03
    

    【讨论】:

    • @Naaraayanan45 有帮助吗?
    【解决方案2】:

    要转换 datetime-s 可以使用以下代码:

    from datetime import datetime
    x='2014-09-16T01:57:48.295Z'
    
    x_conv=str(datetime.strptime(x, '%Y-%m-%dT%H:%M:%S.%fZ'))
    

    然后通过以下方式将其嵌入到 pandas 数据帧中:

    data_set['d1_conv']=str(datetime.strptime(data_set['d1'], '%Y-%m-%dT%H:%M:%S.%fZ'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多