nat*_*002 66 python dataframe pandas
我有一个熊猫数据帧.我想"滞后"我的一个专栏.这意味着,例如,将整个列'gdp'向上移动一个,然后删除剩余行底部的所有多余数据,以便所有列的长度相等.
df =
y gdp cap
0 1 2 5
1 2 3 9
2 8 7 2
3 3 4 7
4 6 7 7
df_lag =
y gdp cap
0 1 3 5
1 2 7 9
2 8 4 2
3 3 7 7
Run Code Online (Sandbox Code Playgroud)
无论如何要做到这一点?
Wou*_*ire 118
In [44]: df['gdp'] = df['gdp'].shift(-1)
In [45]: df
Out[45]:
y gdp cap
0 1 3 5
1 2 7 9
2 8 4 2
3 3 7 7
4 6 NaN 7
In [46]: df[:-1]
Out[46]:
y gdp cap
0 1 3 5
1 2 7 9
2 8 4 2
3 3 7 7
Run Code Online (Sandbox Code Playgroud)
小智 7
shift column gdp up:
df.gdp = df.gdp.shift(-1)
Run Code Online (Sandbox Code Playgroud)
然后删除最后一行
时间在流逝。当前的 Pandas 文档推荐这样:
df.loc[:, 'gdp'] = df.gdp.shift(-1)
Run Code Online (Sandbox Code Playgroud)
小智 5
首先移动列:
df['gdp'] = df['gdp'].shift(-1)
Run Code Online (Sandbox Code Playgroud)
其次删除包含 NaN 单元格的最后一行:
df = df[:-1]
Run Code Online (Sandbox Code Playgroud)
第三次重置索引:
df = df.reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
71414 次 |
最近记录: |