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


Python pyspark DataFrame.iloc用法及代碼示例


本文簡要介紹 pyspark.pandas.DataFrame.iloc 的用法。

用法:

property DataFrame.iloc

純粹基於 integer-location 的索引,用於按位置進行選擇。

.iloc[] 主要基於整數位置(從軸的0length-1),但也可以與條件布爾係列一起使用。

允許的輸入是:

  • 用於列選擇的整數,例如5

  • 用於具有不同索引值的行選擇的整數列表或數組,例如[3, 4, 0]

  • 用於列選擇的整數列表或數組,例如[4, 3, 0]

  • 用於列選擇的布爾數組。

  • 帶有整數的切片對象,用於行和列選擇,例如1:7

Pandas 允許的不允許輸入是:

  • 用於具有重複索引的行選擇的整數列表或數組,例如[4, 4, 0]

  • 用於行選擇的布爾數組。

  • 帶有一個參數的 callable 函數(調用係列、DataFrame 或麵板),並返回索引的有效輸出(上述之一)。當您沒有對調用對象的引用,但希望根據某個值進行選擇時,這在方法鏈中非常有用。

.iloc會提高IndexError如果請求的索引器超出範圍,除了允許越界索引的索引器(這符合 python/numpy語義)。

例子

>>> mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},
...           {'a': 100, 'b': 200, 'c': 300, 'd': 400},
...           {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]
>>> df = ps.DataFrame(mydict, columns=['a', 'b', 'c', 'd'])
>>> df
      a     b     c     d
0     1     2     3     4
1   100   200   300   400
2  1000  2000  3000  4000

僅索引行

用於行選擇的標量整數。

>>> df.iloc[1]
a    100
b    200
c    300
d    400
Name: 1, dtype: int64
>>> df.iloc[[0]]
   a  b  c  d
0  1  2  3  4

使用 slice 對象。

>>> df.iloc[:3]
      a     b     c     d
0     1     2     3     4
1   100   200   300   400
2  1000  2000  3000  4000

索引兩個軸

您可以混合索引和列的索引器類型。使用: 選擇整個軸。

使用標量整數。

>>> df.iloc[:1, 1]
0    2
Name: b, dtype: int64

帶有整數列表。

>>> df.iloc[:2, [1, 3]]
     b    d
0    2    4
1  200  400

使用 slice 對象。

>>> df.iloc[:2, 0:3]
     a    b    c
0    1    2    3
1  100  200  300

使用長度與列匹配的布爾數組。

>>> df.iloc[:, [True, False, True, False]]
      a     c
0     1     3
1   100   300
2  1000  3000

設定值

為與標簽列表匹配的所有項目設置值。

>>> df.iloc[[1, 2], [1]] = 50
>>> df
      a   b     c     d
0     1   2     3     4
1   100  50   300   400
2  1000  50  3000  4000

整行的設置值

>>> df.iloc[0] = 10
>>> df
      a   b     c     d
0    10  10    10    10
1   100  50   300   400
2  1000  50  3000  4000

為整列設置值

>>> df.iloc[:, 2] = 30
>>> df
      a   b   c     d
0    10  10  30    10
1   100  50  30   400
2  1000  50  30  4000

為整個列列表設置值

>>> df.iloc[:, [2, 3]] = 100
>>> df
      a   b    c    d
0    10  10  100  100
1   100  50  100  100
2  1000  50  100  100

用 Series 設置值

>>> df.iloc[:, 3] = df.iloc[:, 3] * 2
>>> df
      a   b    c    d
0    10  10  100  200
1   100  50  100  200
2  1000  50  100  200

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.DataFrame.iloc。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。