首页 > 解决方案 > 为什么我使用 .apply 函数丢失了列名

问题描述

请查看下面的代码并告诉我为什么以及如何纠正我在使用 .apply 函数时丢失列的事实:

def compute_dayi_past_forecasts_assign_to_df(self):
        print ("Reverse engineering day_i past forecasts & exporting to dftrain.csv ...")
        
        self.simplifieddf = self.data[self.data["leadtime_hour"]==0]
        print (self.data)
        print(self.simplifieddf)
        self.simplifieddf.reset_index()
        print(self.simplifieddf)
        self.simplifieddf = self.simplifieddf[["dateiminusonepm25dayiforecast",\
                "dateiminusoneno2dayiforecast",\
                "dateiminusoneo3dayiforecast",\
                "dateiminusonepm10dayiforecast",\
                "dateiminusonecodayiforecast",\
                "dateiminusoneso2dayiforecast",\
                "dateiminustwopm25dayiforecast",\
                "dateiminustwono2dayiforecast",\
                "dateiminustwoo3dayiforecast",\
                "dateiminustwopm10dayiforecast",\
                "dateiminustwocodayiforecast",\
                "dateiminustwoso2dayiforecast",\
                "dateiminusthreepm25dayiforecast",\
                "dateiminusthreeno2dayiforecast",\
                "dateiminusthreeo3dayiforecast",\
                "dateiminusthreepm10dayiforecast",\
                "dateiminusthreecodayiforecast",\
                "dateiminusthreeso2dayiforecast",\
                "dateiminusfourpm25dayiforecast",\
                "dateiminusfourno2dayiforecast",\
                "dateiminusfouro3dayiforecast",\
                "dateiminusfourpm10dayiforecast",\
                "dateiminusfourcodayiforecast",\
                "dateiminusfourso2dayiforecast",\
                "dateiminusonepm25dayiforecast7davg",\
                "dateiminusoneno2dayiforecast7davg",\
                "dateiminusoneo3dayiforecast7davg",\
                "dateiminusonepm10dayiforecast7davg",\
                "dateiminusonecodayiforecast7davg",\
                "dateiminusoneso2dayiforecast7davg",\
                "dateiminusonepm25dayiforecast1Mavg",\
                "dateiminusoneno2dayiforecast1Mavg",\
                "dateiminusoneo3dayiforecast1Mavg",\
                "dateiminusonepm10dayiforecast1Mavg",\
                "dateiminusonecodayiforecast1Mavg",\
                "dateiminusoneso2dayiforecast1Mavg",\
                "dateiminusonepm25dayiforecast1MMax",\
                "dateiminusoneno2dayiforecast1MMax",\
                "dateiminusoneo3dayiforecast1MMax",\
                "dateiminusonepm10dayiforecast1MMax",\
                "dateiminusonecodayiforecast1MMax",\
                "dateiminusoneso2dayiforecast1MMax",\
                "dateiminustwopm25dayiforecast7davg",\
                "dateiminustwono2dayiforecast7davg",\
                "dateiminustwoo3dayiforecast7davg",\
                "dateiminustwopm10dayiforecast7davg",\
                "dateiminustwocodayiforecast7davg",\
                "dateiminustwoso2dayiforecast7davg",\
                "dateiminustwopm25dayiforecast1Mavg",\
                "dateiminustwono2dayiforecast1Mavg",\
                "dateiminustwoo3dayiforecast1Mavg",\
                "dateiminustwopm10dayiforecast1Mavg",\
                "dateiminustwocodayiforecast1Mavg",\
                "dateiminustwoso2dayiforecast1Mavg",\
                "dateiminustwopm25dayiforecast1MMax",\
                "dateiminustwono2dayiforecast1MMax",\
                "dateiminustwoo3dayiforecast1MMax",\
                "dateiminustwopm10dayiforecast1MMax",\
                "dateiminustwocodayiforecast1MMax",\
                "dateiminustwoso2dayiforecast1MMax",\
                "dateiminusthreepm25dayiforecast7davg",\
                "dateiminusthreeno2dayiforecast7davg",\
                "dateiminusthreeo3dayiforecast7davg",\
                "dateiminusthreepm10dayiforecast7davg",\
                "dateiminusthreecodayiforecast7davg",\
                "dateiminusthreeso2dayiforecast7davg",\
                "dateiminusthreepm25dayiforecast1Mavg",\
                "dateiminusthreeno2dayiforecast1Mavg",\
                "dateiminusthreeo3dayiforecast1Mavg",\
                "dateiminusthreepm10dayiforecast1Mavg",\
                "dateiminusthreecodayiforecast1Mavg",\
                "dateiminusthreeso2dayiforecast1Mavg",\
                "dateiminusthreepm25dayiforecast1MMax",\
                "dateiminusthreeno2dayiforecast1MMax",\
                "dateiminusthreeo3dayiforecast1MMax",\
                "dateiminusthreepm10dayiforecast1MMax",\
                "dateiminusthreecodayiforecast1MMax",\
                "dateiminusthreeso2dayiforecast1MMax",\
                "dateiminusfourpm25dayiforecast7davg",\
                "dateiminusfourno2dayiforecast7davg",\
                "dateiminusfouro3dayiforecast7davg",\
                "dateiminusfourpm10dayiforecast7davg",\
                "dateiminusfourcodayiforecast7davg",\
                "dateiminusfourso2dayiforecast7davg",\
                "dateiminusfourpm25dayiforecast1Mavg",\
                "dateiminusfourno2dayiforecast1Mavg",\
                "dateiminusfouro3dayiforecast1Mavg",\
                "dateiminusfourpm10dayiforecast1Mavg",\
                "dateiminusfourcodayiforecast1Mavg",\
                "dateiminusfourso2dayiforecast1Mavg",\
                "dateiminusfourpm25dayiforecast1MMax",\
                "dateiminusfourno2dayiforecast1MMax",\
                "dateiminusfouro3dayiforecast1MMax",\
                "dateiminusfourpm10dayiforecast1MMax",\
                "dateiminusfourcodayiforecast1MMax",\
                "dateiminusfourso2dayiforecast1MMax"]] = self.simplifieddf.apply(self.compute_forecast_data_for_training_models, axis = 1).apply(pd.Series)
        
        print("\n")
        print(self.simplifieddf)
        print("\n")
        self.simplifieddf.to_csv('../data/train/all_data_merged/fr/dftrain.csv')
        return None

Reverse engineering day_i past forecasts & exporting to dftrain.csv ...
        level_0          nom  ...              dateiminusfourcodayiforecast               dateiminusfourso2dayiforecast
0             0          Ain  ...                                       NaN                                         NaN
1             1          Ain  ...                                       NaN                                         NaN
2             2          Ain  ...                                       NaN                                         NaN
3             3          Ain  ...                                       NaN                                         NaN
4             4          Ain  ...                                       NaN                                         NaN
...         ...          ...  ...                                       ...                                         ...
180475    39575  Haute-Corse  ...  (154.95061300659887, 0.1198547441642122)  (0.2828088937316845, 0.011422029020511886)
180476    39576  Haute-Corse  ...  (154.95061300659887, 0.1198547441642122)  (0.2828088937316845, 0.011422029020511886)
180477    39577  Haute-Corse  ...  (154.95061300659887, 0.1198547441642122)  (0.2828088937316845, 0.011422029020511886)
180478    39578  Haute-Corse  ...  (154.95061300659887, 0.1198547441642122)  (0.2828088937316845, 0.011422029020511886)
180479    39579  Haute-Corse  ...  (154.95061300659887, 0.1198547441642122)  (0.2828088937316845, 0.011422029020511886)

[180480 rows x 124 columns]
        level_0          nom  ...               dateiminusfourcodayiforecast               dateiminusfourso2dayiforecast
0             0          Ain  ...                                        NaN                                         NaN
5             5          Ain  ...                                        NaN                                         NaN
10           10          Ain  ...                                        NaN                                         NaN
15           15          Ain  ...                                        NaN                                         NaN
20           20          Ain  ...  (149.03014431477732, 0.11197225229367214)   (1.3959629756333052, 0.05675848607515867)
...         ...          ...  ...                                        ...                                         ...
180455    39555  Haute-Corse  ...  (143.41060955577566, 0.10449042283729183)  (0.3608481368692678, 0.014600405538738473)
180460    39560  Haute-Corse  ...  (144.24718466236382, 0.10560423608756485)  (0.3614149127777261, 0.014623489145986743)
180465    39565  Haute-Corse  ...  (140.25963475581128, 0.10029522571053293)   (0.5594709101764878, 0.02268989914840522)
180470    39570  Haute-Corse  ...   (153.1138524276324, 0.11740928737937492)   (0.4827762961138283, 0.01956628658361586)
180475    39575  Haute-Corse  ...   (154.95061300659887, 0.1198547441642122)  (0.2828088937316845, 0.011422029020511886)

[36096 rows x 124 columns]
        level_0          nom  ...               dateiminusfourcodayiforecast               dateiminusfourso2dayiforecast
0             0          Ain  ...                                        NaN                                         NaN
5             5          Ain  ...                                        NaN                                         NaN
10           10          Ain  ...                                        NaN                                         NaN
15           15          Ain  ...                                        NaN                                         NaN
20           20          Ain  ...  (149.03014431477732, 0.11197225229367214)   (1.3959629756333052, 0.05675848607515867)
...         ...          ...  ...                                        ...                                         ...
180455    39555  Haute-Corse  ...  (143.41060955577566, 0.10449042283729183)  (0.3608481368692678, 0.014600405538738473)
180460    39560  Haute-Corse  ...  (144.24718466236382, 0.10560423608756485)  (0.3614149127777261, 0.014623489145986743)
180465    39565  Haute-Corse  ...  (140.25963475581128, 0.10029522571053293)   (0.5594709101764878, 0.02268989914840522)
180470    39570  Haute-Corse  ...   (153.1138524276324, 0.11740928737937492)   (0.4827762961138283, 0.01956628658361586)
180475    39575  Haute-Corse  ...   (154.95061300659887, 0.1198547441642122)  (0.2828088937316845, 0.011422029020511886)

[36096 rows x 124 columns]


              0        1  ... dateiminusfourcodayiforecast1MMax dateiminusfourso2dayiforecast1MMax
0           NaN      NaN  ...                               NaN                                NaN
5           NaN      NaN  ...                               NaN                                NaN
10          NaN      NaN  ...                               NaN                                NaN
15          NaN      NaN  ...                               NaN                                NaN
20      11.8516  2.93831  ...                               NaN                                NaN
...         ...      ...  ...                               ...                                ...
180455  4.24789  2.18165  ...                           172.461                           0.689131
180460  4.68711  1.80628  ...                           172.461                           0.689131
180465  7.63358  1.98594  ...                           172.461                           0.689131
180470  7.48639  1.99899  ...                           172.461                           0.689131
180475  8.15164  1.02853  ...                           172.461                           0.689131

[36096 rows x 192 columns]

正如您所注意到的,一些输出列没有名称,并且以数字递增。如果我拿走 self.simplifieddf = self.data[self.data["leadtime_hour"]==0] 并将函数直接应用于 self.data 我保留所有列名,那么列应该比列出的多[[ ]] 之间的列名...

标签: pythonpandasdataframeapply

解决方案


推荐阅读