簡體   English   中英

使用 Python 遍歷與列匹配的日期

[英]Iterate through dates matching with columns using Python

我有一個包含 366 列的表格文件。 其中,一個代表目標日期,另一個 365 代表一年中某一天的溫度。 我添加了一個名為“溫度”的新列,我想用我的日期字段的相應溫度值填寫此列。 很難解釋,請看例子:

DateFin   b1_T_M01  b2_T_M01 Temperature
27-01-18    5.6      3.8   
06-01-18    5.6      4.2
02-01-18    6.3      4.6        4.6
01-01-18    3.2      5.9        3.2

從 b x _TM x開始, b指日, M指月。 因此,例如“b1_T_M01”指的是第一個月第一天(一月一日)的溫度值。 說我想減少維度的數量,只保留我感興趣的那一天的信息。 例如,對於日期 27-01-18,我需要從 01 月(b27_TM01)開始的帶 27。 我不知道如何使用不同的維度進行迭代,我被凍結了。 有沒有人知道如何使用 python 以迭代方式做到這一點? 非常感謝您的關注!

您可以從日期列中構建一個字符串,以獲得正確的值:

df['DateFin'] = pd.to_datetime(df['DateFin'], dayfirst=True)

def my_date_string(date):
    return 'b' + str(date.day) + '_T_M' + '{:02d}'.format(date.month)


df['Temperature'] = df.apply(lambda row:
         row[my_date_string(row['DateFin'])]
         if my_date_string(row['DateFin']) in df.columns
         else '', axis=1)
print(df)

     DateFin  b1_T_M01  b2_T_M01 Temperature
0 2018-01-27       5.6       3.8            
1 2018-01-06       5.6       4.2            
2 2018-01-02       6.3       4.6         4.6
3 2018-01-01       3.2       5.9         3.2

暫無
暫無

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

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