当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Pandas DataFrame slice_shift方法用法及代码示例


Pandas DataFrame.slice_shift(~) 方法将 DataFrame 的行移动指定的量,并删除空行。

注意

slice_shift(~) shift(~) 两种方法都执行移位,但有两个主要区别:

  • slice_shift(~) 才不是返回源DataFrame的新副本,即修改结果slice_shift(~)最终将改变源 DataFrame。相比之下,DataFrame shift方法返回一个新副本。

  • slice_shift(~) 可能会修改 DataFrame 的形状,而 shift(~) 方法始终返回与原始形状相同的 DataFrame。检查下面的示例以进行说明。

参数

1. periods | int

移动量:

  • 正整数:行向下移动

  • 负整数:行向上移动。

返回值

行移位的DataFrame

例子

考虑以下 DataFrame :

df = pd.DataFrame({"A":["a","b","c","d"],"B":["e","f","g","h"],"C":["i","j","k","l"]}, index=[6,7,8,9])
df



   A  B  C
6  a  e  i
7  b  f  j
8  c  g  k
9  d  h  l

基本用法

向下移动 2 行:

df.slice_shift(2)



   A  B  C
8  a  e  i
9  b  f  j

请注意如何仅将值向下移动,而索引保持原样。由于索引 67 不再具有有效值,因此这些行将被删除。

将此与 shift(~) 方法进行对比:

df.shift(2)



   A    B    C
6  NaN  NaN  NaN
7  NaN  NaN  NaN
8  a    e    i
9  b    f    j

这里的要点是, shift(~) 只需用 NaN 填充它们的值,而不是丢弃索引 67

向上移动

向上移动 2 行:

df.slice_shift(-2)



   A  B  C
0  c  g  k
1  d  h  l

行为突变

考虑与上面相同的DataFrame:

df = pd.DataFrame({"A":["a","b","c","d"],"B":["e","f","g","h"],"C":["i","j","k","l"]}, index=[6,7,8,9])
df



   A  B  C
6  a  e  i
7  b  f  j
8  c  g  k
9  d  h  l

执行移位并将返回的DataFrame存储在x中:

x = df.slice_shift(2)
x



   A  B  C
8  a  e  i
9  b  f  j

如果我们修改 x ,那么原始的 df 也会发生变化:

x.iloc[0,0] = "Z"
df



   A  B  C
6  Z  e  i
7  b  f  j
8  c  g  k
9  d  h  l

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | slice_shift method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。