每次我将数据框附加到文本文件时,我希望它包含每行具有相同时间戳的列。时间戳可以是任意时间,只要它与下次将新数据帧附加到现有文本文件时不同。下面的代码插入一个名为TimeStamp的列,但实际上并没有插入datetime值。该列只是空的。我必须忽略一些简单的事情。我究竟做错了什么?
t = [datetime.datetime.now().replace(microsecond=0) for i in range(df.shape[0])]
s = pd.Series(t, name = 'TimeStamp')
df.insert(0, 'TimeStamp', s)
答案 0 :(得分:1)
我认为最简单的方法是仅使用insert
:
df = pd.DataFrame({'A': list('AAA'), 'B': range(3)}, index=list('xyz'))
print (df)
A B
x A 0
y A 1
z A 2
df.insert(0, 'TimeStamp', pd.datetime.now().replace(microsecond=0))
print (df)
TimeStamp A B
x 2018-02-15 07:35:35 A 0
y 2018-02-15 07:35:35 A 1
z 2018-02-15 07:35:35 A 2
您的工作版本 - 将range(df.shape[0])
更改为df.index
Series
和DataFrame
中的相同索引:
t = [datetime.datetime.now().replace(microsecond=0) for i in df.index]
s = pd.Series(t, name = 'TimeStamp')
df.insert(0, 'TimeStamp', s)