使用Python对与列匹配的日期进行迭代。

问题描述 投票:0回答:1

我有一个有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

从bx我的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们,你们的朋友们。xజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ b 指的是日子和 M 到月份。所以举例来说 "b1_T_M01" 指的是某月某日(一月一日)的温度值。说,我想减少维度的数量,只保留我感兴趣的那一天的信息。举个例子,对于日期27-01-18,我需要月01的带27(b27_TM01)。我不知道如何使用不同维度进行迭代,我被冻结了。有没有人有一个线索,如何做到这一点,在一个迭代的方式使用python?非常感谢您的关注!

python loops iteration dimensions
1个回答
1
投票

你可以从你的日期列中建立一个字符串,以获得正确的值。

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
© www.soinside.com 2019 - 2024. All rights reserved.