Hướng dẫn replace integer with string python dataframe - thay thế số nguyên bằng chuỗi dữ liệu python

Có cách nào để sử dụng chức năng ánh xạ hoặc một cái gì đó tốt hơn để thay thế các giá trị trong toàn bộ khung dữ liệu không?

Tôi chỉ biết làm thế nào để thực hiện ánh xạ trên loạt.

Tôi muốn thay thế các chuỗi trong cột 'TESST' và 'SET' bằng một số ví dụ SET = 1, test = 2

Dưới đây là một ví dụ về bộ dữ liệu của tôi: (Bộ dữ liệu gốc rất lớn)

ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age tesst   set
0          a  volvo      p      swe      1        0        1   23   set   set
1          b  volvo   None      swe      0        0        1   45   set   set
2          c    bmw      p       us      0        0        1   56  test  test
3          d    bmw      p       us      0        1        1   43  test  test
4          e    bmw      d  germany      1        0        1   34   set   set
5          f   audi      d  germany      1        0        1   59   set   set
6          g  volvo      d      swe      1        0        0   65  test   set
7          h   audi      d      swe      1        0        0   78  test   set
8          i  volvo      d       us      1        1        1   32   set   set

Kết quả cuối cùng nên là

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1

Hướng dẫn replace integer with string python dataframe - thay thế số nguyên bằng chuỗi dữ liệu python

David Buck

3.60833 Huy hiệu vàng30 Huy hiệu bạc35 Huy hiệu Đồng33 gold badges30 silver badges35 bronze badges

Đã hỏi ngày 14 tháng 6 năm 2013 lúc 18:20Jun 14, 2013 at 18:20

Còn

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
6 thì sao?

In [9]: mapping = {'set': 1, 'test': 2}

In [10]: df.replace({'set': mapping, 'tesst': mapping})
Out[10]: 
   Unnamed: 0 respondent  brand engine  country  aware  aware_2  aware_3  age  \
0           0          a  volvo      p      swe      1        0        1   23   
1           1          b  volvo   None      swe      0        0        1   45   
2           2          c    bmw      p       us      0        0        1   56   
3           3          d    bmw      p       us      0        1        1   43   
4           4          e    bmw      d  germany      1        0        1   34   
5           5          f   audi      d  germany      1        0        1   59   
6           6          g  volvo      d      swe      1        0        0   65   
7           7          h   audi      d      swe      1        0        0   78   
8           8          i  volvo      d       us      1        1        1   32   

  tesst set  
0     2   1  
1     1   2  
2     2   1  
3     1   2  
4     2   1  
5     1   2  
6     2   1  
7     1   2  
8     2   1  

Như @Jeff đã chỉ ra trong các bình luận, trong các phiên bản Pandas <0.11.1, theo cách thủ công

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
7 vào cuối để chuyển đổi đúng TESST và đặt thành các cột
 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
8, trong trường hợp quan trọng trong các hoạt động tiếp theo.

Zulan

21.6K6 Huy hiệu vàng47 Huy hiệu bạc101 Huy hiệu đồng6 gold badges47 silver badges101 bronze badges

Đã trả lời ngày 14 tháng 6 năm 2013 lúc 18:41Jun 14, 2013 at 18:41

Dan Allandan AllanDan Allan

33K6 Huy hiệu vàng68 Huy hiệu bạc62 Huy hiệu Đồng6 gold badges68 silver badges62 bronze badges

4

Tôi biết điều này là cũ, nhưng thêm cho những người tìm kiếm như tôi. Tạo một khung dữ liệu trong gấu trúc, DF trong mã này

ip_addresses = df.source_ip.unique()
ip_dict = dict(zip(ip_addresses, range(len(ip_addresses))))

Điều đó sẽ cung cấp cho bạn một bản đồ từ điển của các địa chỉ IP mà không cần phải viết nó ra.

Đã trả lời ngày 12 tháng 10 năm 2016 lúc 3:08Oct 12, 2016 at 3:08

Hướng dẫn replace integer with string python dataframe - thay thế số nguyên bằng chuỗi dữ liệu python

BrandonbrandonBrandon

4014 Huy hiệu bạc2 Huy hiệu đồng4 silver badges2 bronze badges

0

Bạn có thể sử dụng chức năng

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
9 DataFrame để làm điều này:

In [26]: df = DataFrame({"A": [1,2,3,4,5], "B": ['a','b','c','d','e'],
                         "C": ['b','a','c','c','d'], "D": ['a','c',7,9,2]})
In [27]: df
Out[27]:
   A  B  C  D
0  1  a  b  a
1  2  b  a  c
2  3  c  c  7
3  4  d  c  9
4  5  e  d  2

In [28]: mymap = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}

In [29]: df.applymap(lambda s: mymap.get(s) if s in mymap else s)
Out[29]:
   A  B  C  D
0  1  1  2  1
1  2  2  1  3
2  3  3  3  7
3  4  4  3  9
4  5  5  4  2

Đã trả lời ngày 14 tháng 6 năm 2013 lúc 18:38Jun 14, 2013 at 18:38

Hướng dẫn replace integer with string python dataframe - thay thế số nguyên bằng chuỗi dữ liệu python

BDIAMANTEBDIAMANTEbdiamante

14.8k5 Huy hiệu vàng39 Huy hiệu bạc46 Huy hiệu đồng5 gold badges39 silver badges46 bronze badges

6

Để chuyển đổi các chuỗi như 'Volvo', 'BMW' thành các số nguyên trước tiên chuyển đổi nó thành DataFrame, sau đó chuyển nó sang pandas.get_dummies ()

  df  = DataFrame.from_csv("myFile.csv")
  df_transform = pd.get_dummies( df )
  print( df_transform )

Thay thế tốt hơn: Chuyển từ điển cho bản đồ () của loạt gấu trúc (df.mycol) (ví dụ bằng cách chỉ định thương hiệu cột): passing a dictionary to map() of a pandas series (df.myCol) (by specifying the column brand for example)

df.brand = df.brand.map( {'volvo':0 , 'bmw':1, 'audi':2} )

Đã trả lời ngày 12 tháng 7 năm 2017 lúc 20:31Jul 12, 2017 at 20:31

Samer Ayoubsamer AyoubSamer Ayoub

9618 Huy hiệu bạc9 Huy hiệu Đồng8 silver badges9 bronze badges

Cách đơn giản nhất để thay thế bất kỳ giá trị nào trong DataFrame:

df=df.replace(to_replace="set",value="1")
df=df.replace(to_replace="test",value="2")

Hy vọng điều này sẽ giúp.

Đã trả lời ngày 31 tháng 3 năm 2020 lúc 5:50Mar 31, 2020 at 5:50

Hướng dẫn replace integer with string python dataframe - thay thế số nguyên bằng chuỗi dữ liệu python

Bạn cũng có thể làm điều này với Pandas

In [9]: mapping = {'set': 1, 'test': 2}

In [10]: df.replace({'set': mapping, 'tesst': mapping})
Out[10]: 
   Unnamed: 0 respondent  brand engine  country  aware  aware_2  aware_3  age  \
0           0          a  volvo      p      swe      1        0        1   23   
1           1          b  volvo   None      swe      0        0        1   45   
2           2          c    bmw      p       us      0        0        1   56   
3           3          d    bmw      p       us      0        1        1   43   
4           4          e    bmw      d  germany      1        0        1   34   
5           5          f   audi      d  germany      1        0        1   59   
6           6          g  volvo      d      swe      1        0        0   65   
7           7          h   audi      d      swe      1        0        0   78   
8           8          i  volvo      d       us      1        1        1   32   

  tesst set  
0     2   1  
1     1   2  
2     2   1  
3     1   2  
4     2   1  
5     1   2  
6     2   1  
7     1   2  
8     2   1  
0. Trước tiên bạn sẽ cần xác định cột là
In [9]: mapping = {'set': 1, 'test': 2}

In [10]: df.replace({'set': mapping, 'tesst': mapping})
Out[10]: 
   Unnamed: 0 respondent  brand engine  country  aware  aware_2  aware_3  age  \
0           0          a  volvo      p      swe      1        0        1   23   
1           1          b  volvo   None      swe      0        0        1   45   
2           2          c    bmw      p       us      0        0        1   56   
3           3          d    bmw      p       us      0        1        1   43   
4           4          e    bmw      d  germany      1        0        1   34   
5           5          f   audi      d  germany      1        0        1   59   
6           6          g  volvo      d      swe      1        0        0   65   
7           7          h   audi      d      swe      1        0        0   78   
8           8          i  volvo      d       us      1        1        1   32   

  tesst set  
0     2   1  
1     1   2  
2     2   1  
3     1   2  
4     2   1  
5     1   2  
6     2   1  
7     1   2  
8     2   1  
1, ví dụ:

In [66]: s = pd.Series(["a","b","c","a"], dtype="category")

In [67]: s
Out[67]: 
0    a
1    b
2    c
3    a
dtype: category
Categories (3, object): [a, b, c]

Và sau đó đổi tên chúng:

In [70]: s.cat.rename_categories([1,2,3])
Out[70]: 
0    1
1    2
2    3
3    1
dtype: category
Categories (3, int64): [1, 2, 3]

Bạn cũng có thể vượt qua một đối tượng giống như Dict để ánh xạ đổi tên, ví dụ:

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
0

Đã trả lời ngày 18 tháng 5 năm 2018 lúc 14:13May 18, 2018 at 14:13

Hướng dẫn replace integer with string python dataframe - thay thế số nguyên bằng chuỗi dữ liệu python

Tsandotsandotsando

4.1942 Huy hiệu vàng31 Huy hiệu bạc34 Huy hiệu đồng2 gold badges31 silver badges34 bronze badges

2

Khi không có tính năng nào không nhiều:

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
1

Khi nó không thể thực hiện được:

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
2

Đã trả lời ngày 2 tháng 6 năm 2018 lúc 9:07Jun 2, 2018 at 9:07

Bạn có thể xây dựng

In [9]: mapping = {'set': 1, 'test': 2}

In [10]: df.replace({'set': mapping, 'tesst': mapping})
Out[10]: 
   Unnamed: 0 respondent  brand engine  country  aware  aware_2  aware_3  age  \
0           0          a  volvo      p      swe      1        0        1   23   
1           1          b  volvo   None      swe      0        0        1   45   
2           2          c    bmw      p       us      0        0        1   56   
3           3          d    bmw      p       us      0        1        1   43   
4           4          e    bmw      d  germany      1        0        1   34   
5           5          f   audi      d  germany      1        0        1   59   
6           6          g  volvo      d      swe      1        0        0   65   
7           7          h   audi      d      swe      1        0        0   78   
8           8          i  volvo      d       us      1        1        1   32   

  tesst set  
0     2   1  
1     1   2  
2     2   1  
3     1   2  
4     2   1  
5     1   2  
6     2   1  
7     1   2  
8     2   1  
2 từ chính các giá trị
In [9]: mapping = {'set': 1, 'test': 2}

In [10]: df.replace({'set': mapping, 'tesst': mapping})
Out[10]: 
   Unnamed: 0 respondent  brand engine  country  aware  aware_2  aware_3  age  \
0           0          a  volvo      p      swe      1        0        1   23   
1           1          b  volvo   None      swe      0        0        1   45   
2           2          c    bmw      p       us      0        0        1   56   
3           3          d    bmw      p       us      0        1        1   43   
4           4          e    bmw      d  germany      1        0        1   34   
5           5          f   audi      d  germany      1        0        1   59   
6           6          g  volvo      d      swe      1        0        0   65   
7           7          h   audi      d      swe      1        0        0   78   
8           8          i  volvo      d       us      1        1        1   32   

  tesst set  
0     2   1  
1     1   2  
2     2   1  
3     1   2  
4     2   1  
5     1   2  
6     2   1  
7     1   2  
8     2   1  
3 và điền như bên dưới

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
3

Đã trả lời ngày 5 tháng 7 năm 2020 lúc 15:07Jul 5, 2020 at 15:07

In [9]: mapping = {'set': 1, 'test': 2}

In [10]: df.replace({'set': mapping, 'tesst': mapping})
Out[10]: 
   Unnamed: 0 respondent  brand engine  country  aware  aware_2  aware_3  age  \
0           0          a  volvo      p      swe      1        0        1   23   
1           1          b  volvo   None      swe      0        0        1   45   
2           2          c    bmw      p       us      0        0        1   56   
3           3          d    bmw      p       us      0        1        1   43   
4           4          e    bmw      d  germany      1        0        1   34   
5           5          f   audi      d  germany      1        0        1   59   
6           6          g  volvo      d      swe      1        0        0   65   
7           7          h   audi      d      swe      1        0        0   78   
8           8          i  volvo      d       us      1        1        1   32   

  tesst set  
0     2   1  
1     1   2  
2     2   1  
3     1   2  
4     2   1  
5     1   2  
6     2   1  
7     1   2  
8     2   1  
4 từ @ishnark bình luận về câu trả lời được chấp nhận.

Đã trả lời ngày 30 tháng 5 năm 2019 lúc 1:47May 30, 2019 at 1:47

ChapochapoChapo

2.4313 huy hiệu vàng27 Huy hiệu bạc55 Huy hiệu đồng3 gold badges27 silver badges55 bronze badges

In [9]: mapping = {'set': 1, 'test': 2}

In [10]: df.replace({'set': mapping, 'tesst': mapping})
Out[10]: 
   Unnamed: 0 respondent  brand engine  country  aware  aware_2  aware_3  age  \
0           0          a  volvo      p      swe      1        0        1   23   
1           1          b  volvo   None      swe      0        0        1   45   
2           2          c    bmw      p       us      0        0        1   56   
3           3          d    bmw      p       us      0        1        1   43   
4           4          e    bmw      d  germany      1        0        1   34   
5           5          f   audi      d  germany      1        0        1   59   
6           6          g  volvo      d      swe      1        0        0   65   
7           7          h   audi      d      swe      1        0        0   78   
8           8          i  volvo      d       us      1        1        1   32   

  tesst set  
0     2   1  
1     1   2  
2     2   1  
3     1   2  
4     2   1  
5     1   2  
6     2   1  
7     1   2  
8     2   1  
5 làm chính xác điều này.

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
4

Với một DataFrame:

 ds_r
  respondent  brand engine  country  aware  aware_2  aware_3  age  tesst  set
0          a  volvo      p      swe      1        0        1   23      1    1
1          b  volvo   None      swe      0        0        1   45      1    1
2          c    bmw      p       us      0        0        1   56      2    2
3          d    bmw      p       us      0        1        1   43      2    2
4          e    bmw      d  germany      1        0        1   34      1    1
5          f   audi      d  germany      1        0        1   59      1    1
6          g  volvo      d      swe      1        0        0   65      2    1
7          h   audi      d      swe      1        0        0   78      2    1
8          i  volvo      d       us      1        1        1   32      1    1
5

Đã trả lời ngày 27 tháng 9 lúc 15:39Sep 27 at 15:39

Hướng dẫn replace integer with string python dataframe - thay thế số nguyên bằng chuỗi dữ liệu python

ZachbzachbZachB

11.6K2 Huy hiệu vàng53 Huy hiệu bạc87 Huy hiệu đồng2 gold badges53 silver badges87 bronze badges

Làm cách nào để chuyển đổi một số thành một chuỗi trong DataFrame trong Python?

Có bốn cách chuyển đổi số nguyên thành dây trong gấu trúc ...
Phương pháp 1: Khung Map (Str) ['Cột DataFrame'] = frame ['DataFrame Cột']. Bản đồ (str).
Phương pháp 2: Áp dụng (str) khung ['cột DataFrame'] = frame ['DataFrame Cột']. Áp dụng (str).
Phương pháp 3: ASTYPE (STR) ....
Phương pháp 4: value.Asype (str) ....
Output:.

Làm thế nào để bạn thay thế một số trong khung dữ liệu?

Giả sử bạn muốn thay thế nhiều giá trị bằng nhiều giá trị mới cho cột DataFrame riêng lẻ.Trong trường hợp đó, bạn có thể sử dụng mẫu này: df ['tên cột'] = df ['tên cột'].Giá trị ',' Giá trị mới thứ 2 ', ...])df['column name'] = df['column name']. replace(['1st old value', '2nd old value', ...], ['1st new value', '2nd new value', ...])

Làm thế nào để bạn thay thế một giá trị trong cột DataFrame trong Python?

Hàm dataFrame.replace () được sử dụng để thay thế các giá trị trong cột (một giá trị có giá trị khác trên tất cả các cột).Phương thức này thực hiện to_Replace, giá trị, thay thế, giới hạn, regex và phương thức làm tham số và trả về một dataFrame mới.Khi Inplace = true được sử dụng, nó thay thế trên đối tượng DataFrame hiện có và trả về không có giá trị nào. replace() function is used to replace values in column (one value with another value on all columns). This method takes to_replace, value, inplace, limit, regex and method as parameters and returns a new DataFrame. When inplace=True is used, it replaces on existing DataFrame object and returns None value.

Làm cách nào để chuyển đổi cột số thành một chuỗi trong Python?

Sử dụng chức năng pandas dataFrame.Asype () Để chuyển đổi cột từ int sang chuỗi, bạn có thể áp dụng điều này trên một cột cụ thể hoặc trên toàn bộ DataFrame.Ví dụ dưới đây chuyển đổi cột Phí từ Int sang Chuỗi DTYPE.Bạn cũng có thể sử dụng Numpy. astype() function to convert a column from int to string, you can apply this on a specific column or on an entire DataFrame. The Below example converts Fee column from int to string dtype. You can also use numpy.