Python 第0天值为0的列移位

Python 第0天值为0的列移位,python,Python,我有一个数据框(数据轴),比如客户名称、当前日期、当前天数 +----------+--------------+-------------------+ | customer | current_date | current_day_count | +----------+--------------+-------------------+ | Mark | 2018_02_06 | 15 | | | 2018_02_09 |

我有一个数据框(数据轴),比如客户名称、当前日期、当前天数

+----------+--------------+-------------------+
| customer | current_date | current_day_count |
+----------+--------------+-------------------+
| Mark     | 2018_02_06   |                15 |
|          | 2018_02_09   |                42 |
|          | 2018_02_12   |                33 |
|          | 2018_02_21   |                82 |
|          | 2018_02_27   |                72 |
| Bob      | 2018_02_02   |                76 |
|          | 2018_02_23   |                11 |
|          | 2018_03_04   |                59 |
|          | 2018_03_13   |                68 |
| Shawn    | 2018_02_11   |                71 |
|          | 2018_02_15   |                39 |
|          | 2018_02_18   |                65 |
|          | 2018_02_24   |                38 |
+----------+--------------+-------------------+
现在,我想为每个客户创建一个新列,其中包含
前一天计数
,但客户前一天值的第一天应为0,类似于
客户
当前日期
当前日期
前一天计数
(第一天值为0)

试试这个:

import pandas as pd
import numpy as np

df = pd.DataFrame({'name': ['Mark','Mark','Mark','Mark','Bob','Bob','Bob','Bob'], 'current_day_count': [18,28,29,10,19,92,7,43]})

df['previous_day_count'] = df.groupby('name')['current_day_count'].shift(-1)
df.loc[df.groupby('name',as_index=False).head(1).index,'previous_day_count'] = np.nan
df['previous_day_count'].fillna(0, inplace=True)
import pandas as pd
import numpy as np

df = pd.DataFrame({'name': ['Mark','Mark','Mark','Mark','Bob','Bob','Bob','Bob'], 'current_day_count': [18,28,29,10,19,92,7,43]})

df['previous_day_count'] = df.groupby('name')['current_day_count'].shift(-1)
df.loc[df.groupby('name',as_index=False).head(1).index,'previous_day_count'] = np.nan
df['previous_day_count'].fillna(0, inplace=True)