Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas(Python):如何将值应用于类似的行?_Python_Pandas - Fatal编程技术网

Pandas(Python):如何将值应用于类似的行?

Pandas(Python):如何将值应用于类似的行?,python,pandas,Python,Pandas,很抱歉,这个措词不当的问题,目前只有第一个小时更新为假日 e、 g 2013-01-01 00:00:00-元旦 2013-01-01 00:00:00-无 2013-01-01 00:00:00-无 我想使用Pandas(Python)将类似的假日应用于同一日期 在同一日期使用假日最有效的方法是什么?还有许多其他的假日可以使用吗 提前谢谢你 您可以尝试使用应用方法: 该函数的输入是要应用于每一行的函数。在这种情况下,“axis”应该为零,以便应用于每一行。使用一个名为“连同pandas a

很抱歉,这个措词不当的问题,目前只有第一个小时更新为假日

e、 g

  • 2013-01-01 00:00:00-元旦
  • 2013-01-01 00:00:00-无
  • 2013-01-01 00:00:00-无
我想使用Pandas(Python)将类似的假日应用于同一日期

在同一日期使用假日最有效的方法是什么?还有许多其他的假日可以使用吗

提前谢谢你


您可以尝试使用应用方法:

该函数的输入是要应用于每一行的函数。在这种情况下,“axis”应该为零,以便应用于每一行。

使用一个名为“连同pandas apply”的库可以很好地解决您的问题。下面是一个简短的示例

import pandas as pd
import holidays

us_holidays = holidays.UnitedStates()

# Create a sample DataFrame. You can just use your own
data = pd.DataFrame(pd.date_range('2020-01-01', '2020-01-30'), columns=['date'])

data['holiday'] = data['date'].apply(lambda x: us_holidays.get(x))
print(data)
输出

        date                      holiday
0  2020-01-01               New Year's Day
1  2020-01-02                         None
2  2020-01-03                         None
3  2020-01-04                         None
4  2020-01-05                         None
5  2020-01-06                         None
6  2020-01-07                         None
7  2020-01-08                         None
8  2020-01-09                         None
9  2020-01-10                         None
10 2020-01-11                         None
11 2020-01-12                         None
12 2020-01-13                         None
13 2020-01-14                         None
14 2020-01-15                         None
15 2020-01-16                         None
16 2020-01-17                         None
17 2020-01-18                         None
18 2020-01-19                         None
19 2020-01-20  Martin Luther King, Jr. Day
20 2020-01-21                         None
21 2020-01-22                         None
22 2020-01-23                         None
23 2020-01-24                         None
24 2020-01-25                         None
25 2020-01-26                         None
26 2020-01-27                         None
27 2020-01-28                         None
28 2020-01-29                         None
29 2020-01-30                         None

IIUC,你只有一天中第一个小时的假期。这里是一个数据框架的小示例,其中包含两个月的数据和三天的三个假期

import pandas as pd
import numpy as np

df = pd.DataFrame({'temp':np.random.randint(50,110, 60*24)}, index=pd.date_range('2013-01-01', periods=(60*24), freq='H'))

df['Holiday'] = np.nan

df.loc['2013-01-01 00:00:00', 'Holiday'] = 'New Years Day'
df.loc['2013-02-02 00:00:00', 'Holiday'] = 'Groundhog Day'
df.loc['2013-02-14 00:00:00', 'Holiday'] = "Valentine's Day"
现在,让我们使用DatetimeIndex和ffill中的
groupby
day

df['Holiday'] = df.groupby(df.index.day)['Holiday'].ffill()
让我们看一些记录:

print(df.head(40))
print(df['2013-02-02'])
print(df['2013-02-13':'2013-02-15'])
输出:

                     temp        Holiday
2013-01-01 00:00:00    51  New Years Day
2013-01-01 01:00:00    71  New Years Day
2013-01-01 02:00:00    61  New Years Day
2013-01-01 03:00:00    90  New Years Day
2013-01-01 04:00:00    77  New Years Day
2013-01-01 05:00:00    69  New Years Day
2013-01-01 06:00:00    50  New Years Day
2013-01-01 07:00:00    99  New Years Day
2013-01-01 08:00:00    86  New Years Day
2013-01-01 09:00:00    72  New Years Day
2013-01-01 10:00:00    89  New Years Day
2013-01-01 11:00:00    62  New Years Day
2013-01-01 12:00:00    53  New Years Day
2013-01-01 13:00:00    91  New Years Day
2013-01-01 14:00:00    51  New Years Day
2013-01-01 15:00:00    93  New Years Day
2013-01-01 16:00:00    97  New Years Day
2013-01-01 17:00:00    83  New Years Day
2013-01-01 18:00:00    87  New Years Day
2013-01-01 19:00:00    58  New Years Day
2013-01-01 20:00:00    84  New Years Day
2013-01-01 21:00:00    92  New Years Day
2013-01-01 22:00:00   106  New Years Day
2013-01-01 23:00:00   104  New Years Day
2013-01-02 00:00:00    78            NaN
2013-01-02 01:00:00   104            NaN
2013-01-02 02:00:00    96            NaN
2013-01-02 03:00:00   103            NaN
2013-01-02 04:00:00    60            NaN
2013-01-02 05:00:00    87            NaN
2013-01-02 06:00:00   108            NaN
2013-01-02 07:00:00    85            NaN
2013-01-02 08:00:00    67            NaN
2013-01-02 09:00:00    61            NaN
2013-01-02 10:00:00    91            NaN
2013-01-02 11:00:00    79            NaN
2013-01-02 12:00:00    99            NaN
2013-01-02 13:00:00    82            NaN
2013-01-02 14:00:00    75            NaN
2013-01-02 15:00:00    90            NaN
                     temp        Holiday
2013-02-02 00:00:00    82  Groundhog Day
2013-02-02 01:00:00    58  Groundhog Day
2013-02-02 02:00:00   102  Groundhog Day
2013-02-02 03:00:00    90  Groundhog Day
2013-02-02 04:00:00    79  Groundhog Day
2013-02-02 05:00:00    50  Groundhog Day
2013-02-02 06:00:00    50  Groundhog Day
2013-02-02 07:00:00    83  Groundhog Day
2013-02-02 08:00:00    80  Groundhog Day
2013-02-02 09:00:00    50  Groundhog Day
2013-02-02 10:00:00    52  Groundhog Day
2013-02-02 11:00:00    69  Groundhog Day
2013-02-02 12:00:00   100  Groundhog Day
2013-02-02 13:00:00    61  Groundhog Day
2013-02-02 14:00:00    62  Groundhog Day
2013-02-02 15:00:00    76  Groundhog Day
2013-02-02 16:00:00    83  Groundhog Day
2013-02-02 17:00:00   109  Groundhog Day
2013-02-02 18:00:00   109  Groundhog Day
2013-02-02 19:00:00    81  Groundhog Day
2013-02-02 20:00:00    52  Groundhog Day
2013-02-02 21:00:00   108  Groundhog Day
2013-02-02 22:00:00    68  Groundhog Day
2013-02-02 23:00:00    75  Groundhog Day
                     temp          Holiday
2013-02-13 00:00:00    93              NaN
2013-02-13 01:00:00    93              NaN
2013-02-13 02:00:00    74              NaN
2013-02-13 03:00:00    97              NaN
2013-02-13 04:00:00    58              NaN
2013-02-13 05:00:00   103              NaN
2013-02-13 06:00:00    79              NaN
2013-02-13 07:00:00    65              NaN
2013-02-13 08:00:00    72              NaN
2013-02-13 09:00:00   100              NaN
2013-02-13 10:00:00    66              NaN
2013-02-13 11:00:00    60              NaN
2013-02-13 12:00:00    95              NaN
2013-02-13 13:00:00    51              NaN
2013-02-13 14:00:00    71              NaN
2013-02-13 15:00:00    58              NaN
2013-02-13 16:00:00    58              NaN
2013-02-13 17:00:00    98              NaN
2013-02-13 18:00:00    61              NaN
2013-02-13 19:00:00    63              NaN
2013-02-13 20:00:00    57              NaN
2013-02-13 21:00:00   102              NaN
2013-02-13 22:00:00    69              NaN
2013-02-13 23:00:00    86              NaN
2013-02-14 00:00:00    94  Valentine's Day
2013-02-14 01:00:00    64  Valentine's Day
2013-02-14 02:00:00    62  Valentine's Day
2013-02-14 03:00:00    59  Valentine's Day
2013-02-14 04:00:00    93  Valentine's Day
2013-02-14 05:00:00    99  Valentine's Day
2013-02-14 06:00:00    64  Valentine's Day
2013-02-14 07:00:00    80  Valentine's Day
2013-02-14 08:00:00    89  Valentine's Day
2013-02-14 09:00:00    96  Valentine's Day
2013-02-14 10:00:00    60  Valentine's Day
2013-02-14 11:00:00    76  Valentine's Day
2013-02-14 12:00:00    82  Valentine's Day
2013-02-14 13:00:00    65  Valentine's Day
2013-02-14 14:00:00    90  Valentine's Day
2013-02-14 15:00:00    62  Valentine's Day
2013-02-14 16:00:00    64  Valentine's Day
2013-02-14 17:00:00    98  Valentine's Day
2013-02-14 18:00:00    52  Valentine's Day
2013-02-14 19:00:00    72  Valentine's Day
2013-02-14 20:00:00   108  Valentine's Day
2013-02-14 21:00:00    85  Valentine's Day
2013-02-14 22:00:00    87  Valentine's Day
2013-02-14 23:00:00    62  Valentine's Day
2013-02-15 00:00:00   106              NaN
2013-02-15 01:00:00    82              NaN
2013-02-15 02:00:00    77              NaN
2013-02-15 03:00:00    52              NaN
2013-02-15 04:00:00    94              NaN
2013-02-15 05:00:00    71              NaN
2013-02-15 06:00:00    95              NaN
2013-02-15 07:00:00    96              NaN
2013-02-15 08:00:00    71              NaN
2013-02-15 09:00:00    69              NaN
2013-02-15 10:00:00    85              NaN
2013-02-15 11:00:00    92              NaN
2013-02-15 12:00:00   106              NaN
2013-02-15 13:00:00    77              NaN
2013-02-15 14:00:00    65              NaN
2013-02-15 15:00:00   104              NaN
2013-02-15 16:00:00    98              NaN
2013-02-15 17:00:00   107              NaN
2013-02-15 18:00:00   106              NaN
2013-02-15 19:00:00    67              NaN
2013-02-15 20:00:00    59              NaN
2013-02-15 21:00:00    81              NaN
2013-02-15 22:00:00    56              NaN
2013-02-15 23:00:00    75              NaN

注意:在此数据框中,您的日期时间列位于索引中。

非常感谢您的回答Heikki,但是是否有其他方法可以保持CSV的格式?(请参见附件中的屏幕截图)我必须在此数据集上执行EDA(显示的屏幕截图,不是完整的数据集)抱歉,如果我没有什么意义,我在这方面很新。提前谢谢。