[英]How to take row values from one pandas dataframe and use them as reference to get values from another dataframe
[英]Taking certain column values from one row in a Pandas Dataframe and adding them into another dataframe
我想將某些列值從數據幀df
的特定行復制到另一個名為bestdf
數據幀中
在這里,我創建一個空的數據bestdf
(稱為bestdf
):
new_columns = ['DATE', 'PRICE1', 'PRICE2']
bestdf = pd.DataFrame(columns = new_columns)
bestdf.set_index(['DATE'])
我已經在df
找到了某行,並將該行分配給了變量last_time
:
last_time = df.iloc[-1]
print last_time
給我
DATETIME PRC
2016-10-03 00:07:39.295000 335.82
然后,我想從DATETIME
列中獲取2016-10-03
,並將其放入其他數據bestdf
( bestdf
)的DATE
列中。 我還想將PRC
放入我的空白數據PRICE1
列中。 我希望bestdf
看起來像這樣:
DATE PRICE1 PRICE2
2016-10-03 335.82
這是到目前為止我得到的?
sample_date = str(last_time).split()
best_price = sample_date[2]
sample_date = sample_date[0]
bestdf['DATE'] = sample_date
bestdf['PRICE1'] = best_price
不過,這似乎不起作用。 僅供參考,我也想將其放入一個循環(其中last_time將被修改,並且每次將新值寫入新行時)。 我只是在嘗試使功能正確。
請幫忙!
謝謝
有多種方法可以做您要做的事情:另外,您可以將問題分解為多個部分。 這樣,您將能夠應用不同的步驟來解決它們。
這是一個例子:
import pandas as pd
from datetime import datetime
data = [{'DATETIME': '2016-10-03 00:07:39.295000', 'PRC': 335.29},
{'DATETIME': '2016-10-03 00:07:39.295000', 'PRC': 33.9},
{'DATETIME': '2016-10-03 00:07:39.295000', 'PRC': 10.9}]
df = pd.DataFrame.from_dict(data, orient='columns')
df
輸出:
DATETIME PRC
0 2016-10-03 00:07:39.295000 335.29
1 2016-10-03 00:07:39.295000 33.90
2 2016-10-03 00:07:39.295000 10.90
代碼繼續:
bestdf = df[df['PRC'] > 15].copy()
# we filter data from original df and make a copy
bestdf.columns = ['DATE','PRICE1']
# we change columns as we need
bestdf['PRICE2'] = None
bestdf
輸出:
DATE PRICE1 PRICE2
0 2016-10-03 00:07:39.295000 335.29 None
1 2016-10-03 00:07:39.295000 33.90 None
代碼繼續:
bestdf['DATE'] = bestdf['DATE'].apply(lambda value: value.split(' ')[0])
# we change column format based on how we need it to be
bestdf
輸出:
DATE PRICE1 PRICE2
0 2016-10-03 335.29 None
1 2016-10-03 33.90 None
我們也可以對datetime對象做同樣的事情。 不必一定是字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.