當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。