簡體   English   中英

使用時間戳為索引添加到 Pandas DataFrame 會創建新列

[英]Adding to Pandas DataFrame using timestamps for index creates new columns

我有一個從 CSV 讀取數據的腳本,我想在 DF 可用時將 append 新數據發送到 DF。 不幸的是,當我這樣做時,我總是會得到新的專欄。 當我 print() 時,來自 CSV 的 DF 看起來像這樣

df = pd.read_csv(filename, index_col=0, parse_dates=True)

                      Temp    RH
Time                            
2021-05-17 11:08:34  51.08  77.9
2021-05-17 11:10:30  51.08  77.0
2021-05-17 11:10:35  50.72  71.9
2021-05-17 11:10:41  50.72  71.8
2021-05-17 11:12:19  50.72  71.6
...                    ...   ...
2021-05-24 17:13:57  55.22  70.2
2021-05-24 17:14:02  55.22  69.6
2021-05-24 17:14:08  55.22  68.1
2021-05-24 17:14:18  54.86  66.9
2021-05-24 17:14:29  54.68  69.3

我使用以下內容創建一個假的新 df 用於測試

timeStamp = datetime.now()
timeStamp = timeStamp.strftime("%m-%d-%Y %H:%M:%S")
t = 51.06
h = 69.3
data = {'Temp': t, 'RH': h}
newDF = pd.DataFrame(data, index = pd.to_datetime([timeStamp]) )
print(newDF)

這給了我

                      Temp    RH
2021-05-24 17:28:32  51.06  69.3

這是我調用 append() 時的 output

print(df.append([df, pd.DataFrame(newDF)], ignore_index = False))
                      Temp    RH   Temp    RH
2021-05-17 11:08:34  51.08  77.9    NaN   NaN
2021-05-17 11:10:30  51.08  77.0    NaN   NaN
2021-05-17 11:10:35  50.72  71.9    NaN   NaN
2021-05-17 11:10:41  50.72  71.8    NaN   NaN
2021-05-17 11:12:19  50.72  71.6    NaN   NaN
...                    ...   ...    ...   ...
2021-05-24 17:14:02  55.22  69.6    NaN   NaN
2021-05-24 17:14:08  55.22  68.1    NaN   NaN
2021-05-24 17:14:18  54.86  66.9    NaN   NaN
2021-05-24 17:14:29  54.68  69.3    NaN   NaN
2021-05-24 17:28:32    NaN   NaN  51.06  69.3

[223293 rows x 4 columns]

和 concat()

df1 = pd.concat([df, newDF], ignore_index=False)
print(df1)
                      Temp    RH   Temp    RH
2021-05-17 11:08:34  51.08  77.9    NaN   NaN
2021-05-17 11:10:30  51.08  77.0    NaN   NaN
2021-05-17 11:10:35  50.72  71.9    NaN   NaN
2021-05-17 11:10:41  50.72  71.8    NaN   NaN
2021-05-17 11:12:19  50.72  71.6    NaN   NaN
...                    ...   ...    ...   ...
2021-05-24 17:14:02  55.22  69.6    NaN   NaN
2021-05-24 17:14:08  55.22  68.1    NaN   NaN
2021-05-24 17:14:18  54.86  66.9    NaN   NaN
2021-05-24 17:14:29  54.68  69.3    NaN   NaN
2021-05-24 17:28:32    NaN   NaN  51.06  69.3

[111647 rows x 4 columns]

代替

print(df.append([df, pd.DataFrame(newDF)], ignore_index = False))

我相信保留每個唯一 dataframe 的列,只需在原始 dataframe 本身上調用append即可。

嘗試

df = df.append(newDF, ignore_index = False)

暫無
暫無

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

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