簡體   English   中英

AttributeError: 'set' object 沒有屬性 'keys'

[英]AttributeError: 'set' object has no attribute 'keys'

我正在嘗試將 Unix 秒數從 csv 文件轉換為日期和時間,並嘗試將 output 寫入 Z628ZCB1975FFE2884BFE3 列。 我可以轉換和打印日期和時間,但我不能將它寫入相同的 csv 作為新列。

AttributeError: 'set' object 沒有屬性 'keys'

我嘗試用不同的方式寫作,但卡住了。 我究竟做錯了什么?

import pandas as pd

df = pd.read_csv ('C:/New.csv',sep=';')
print (df)

import datetime
import csv


for i in range(0,len(df)):
    row= df.iloc[i]['arrival_unix_seconds']
    a = int(row)
    date = datetime.datetime.utcfromtimestamp(a)
    targetDate = date.strftime("%Y-%m-%d %H:%M:%S")
    #print(targetDate)
    #targetDate.to_csv("b.csv", sep=';', index=False)

with open("New.csv", "a") as inputfile:

title = ["id", "space_id", "arrival_unix_seconds", "departure_unix_seconds", "xml_id", "Arrival_time"]
writer = csv.DictWriter(inputfile, delimiter=';', fieldnames = title)
writer.writerow({"Arrival_time: targetDate"})

樣本數據

id;space_id;arrival_unix_seconds;departure_unix_seconds;xml_id;Arrival_time 2950;72729;1619808731;1619809039;22
320;16639;1612627087;1612628433;76
82;3408;1609751088;1609751723;7

嘗試apply它比逐行迭代快得多

df['arrival_unix_seconds'] = df.arrival_unix_seconds.apply(lambda x: \
    (datetime.datetime.utcfromtimestamp(int(x))).strftime("%Y-%m-%d %H:%M:%S"))

# Save it like this
pd.to_csv('NEW.csv', index=False)

而不是這個

for i in range(0,len(df)):
    row= df.iloc[i]['arrival_unix_seconds']
    a = int(row)
    date = datetime.datetime.utcfromtimestamp(a)
    targetDate = date.strftime("%Y-%m-%d %H:%M:%S")
    #print(targetDate)
    #targetDate.to_csv("b.csv", sep=';', index=False)

with open("New.csv", "a") as inputfile:

title = ["id", "space_id", "arrival_unix_seconds", "departure_unix_seconds", "xml_id", "Arrival_time"]
writer = csv.DictWriter(inputfile, delimiter=';', fieldnames = title)
writer.writerow({"Arrival_time: targetdata"})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM