03 12Pandas 資料轉換

2021-07-25 15:41:19 字數 2628 閱讀 3034

import numpy as np

import pandas as pd

在dataframe中存在著重複行資料,或者某列中存在著重複的資料,根據需求我們也需要將他們找出來刪除掉或者做其他操作。

在pandas中,.duplicated()表示找出重複的行,返回布林型別的結果,如過該行有重複則維true,否則維false

.drop_duplicates()表示將過濾重複行,即「去重」,預設是判斷全部列。

當然也可以指定判斷某一列是否有重複,該列中重複的資料就刪除該資料整行。

df_obj = pd.dataframe()

print df_obj

data1  data2

0 a 3

1 a 2

2 a 3

3 a 2

4 b 3

5 b 3

6 b 1

7 b 2

print df_obj.duplicated()
0    false

1 false

2 true

3 true

4 false

5 true

6 false

7 false

dtype: bool

print df_obj.drop_duplicates()
data1  data2

0 a 3

1 a 2

4 b 3

6 b 1

7 b 2

# 指定某一列是否有重複。

print df_obj.drop_duplicates('data2')

data1  data2

0 a 3

1 a 2

6 b 1

series根據map傳入的函式對每行或每列進行轉換

ser_obj = pd.series(np.random.randint(0,10,10))

print ser_obj

0    0

1 3

2 4

3 2

4 2

5 5

6 6

7 7

8 9

9 0

dtype: int64

print ser_obj.map(lambda x : x ** 2)
0     0

1 9

2 16

3 4

4 4

5 25

6 36

7 49

8 81

9 0

dtype: int64

# 替換單個值,將0替換成-100

print ser_obj.replace(0, -100)

0   -100

1 3

2 4

3 2

4 2

5 5

6 6

7 7

8 9

9 -100

dtype: int64

# 替換多個值,將0,或2出現的地方替換成-100

print ser_obj.replace([0, 2], -100)

0   -100

1 3

2 4

3 -100

4 -100

5 5

6 6

7 7

8 9

9 -100

dtype: int64

# 替換多個值,將0替換成-100,將2替換成-200

print ser_obj.replace([0, 2], [-100, -200])

0   -100

1 3

2 4

3 -200

4 -200

5 5

6 6

7 7

8 9

9 -100

dtype: int64

注:部分例子來自於小象學院robin課程

pandas對映與資料轉換

在 pandas 中提供了利用對映關係來實現某些操作的函式,具體如下 在資料處理時,經常會遇到需要將資料結構中原來的元素根據實際需求替換成新元素的情況。要想用新元素替換原來元素,就需要定義一組對映關係。在對映關係中,將舊元素作為鍵,新元素作為值。例如,建立字典 fruits 用於指明水果標識和水果名...

pandas資料格式的轉換

1.與numpy series list的轉換 1.將pandas型別轉換為numpy型別,通過.values來轉換 np pd.values2.將numpy型別轉換為list型別,通過.tolist 方法轉換 list np.tolist 3.在用pandas包和numpy包對資料進行分析和計算時...

pandas 行列轉換總結

行轉列或者列轉行的資料一般都是groupby後的資料 b kd.groupby by 當前網點 留倉原因 as index false 運單編號 count c kd.groupby by 當前網點 留倉原因 運單編號 count as index false 同groupby後再 reset in...