對于 Python 資料框(基于某些標準),我可以選擇索引值(日期)(='第一個日期')以及與最后一行('最后日期')相對應的索引值(日期) )。
我想明確計算“第一個日期”和“最后一個日期”之間的差異(天數)(應該是 = 3(天數))。對于這種情況,我該怎么做?
提前謝謝了!
import pandas as pd
df1 = pd.DataFrame({"date": ['2021-3-22', '2021-3-23', '2021-3-24', '2021-3-25', '2021-3-26'],
"x": ['1', 1, 'nan', 'nan', 'nan' ]})
df1.set_index('date', inplace=True)
df1
date x
2021-3-22 1
2021-3-23 1
2021-3-24 nan
2021-3-25 nan
2021-3-26 nan
print('first date:', df1.x[df1.x == 1].tail(1).index.values)
first date: ['2021-3-23']
(=d1)
print('last date:', df1.tail(1).index.values)
last date: ['2021-3-26']
(=d2)
d2-d1=?
提前謝謝了!
uj5u.com熱心網友回復:
您忘記設定'date'列的型別。目前,它是一個,string但您希望它是一個datetime實體。
df1 = pd.DataFrame({"date": ['2021-3-22', '2021-3-23', '2021-3-24', '2021-3-25', '2021-3-26'],
"x": ['nan', 1, 'nan', 'nan', 'nan' ]})
df1['date'] = pd.to_datetime(df1['date'])
df1 = df1.set_index('date')
現在你可以這樣做:
df1.index[-1] - df1.index[0] #Timedelta('4 days 00:00:00')
或者
(df1.index[-1] - df1.index[0]).days #4
uj5u.com熱心網友回復:
您需要以日期時間格式轉換日期或索引值。您可以使用 datetime 庫或使用 pandas 來完成。根據您的要求,您可以執行以下操作
(pd.to_datetime(df1.tail(1).index.values, format='%Y-%m-%d')
- pd.to_datetime(df1.x[df1.x == 1].tail(1).index.values, format='%Y-%m-%d')).days[0]
pd.to_datetime 會將字串值轉換為所需的日期格式
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/524756.html
標籤:Python熊猫数据框
上一篇:如何過濾資料框中的列?
下一篇:按天對大df中的值求和并鍵入
