Pandas đến số excel được lưu trữ dưới dạng văn bản

Xin lỗi, tôi phải đăng ở đây vì vấn đề mà tôi đang gặp phải. Tôi nhận được hai dòng thay vì một dòng cho mỗi lần so sánh. Khi tôi xem bảng excel kết quả, một số id được lưu dưới dạng văn bản và một số thì không. Do đó, cả hai đều được coi là hai dòng trong quá trình so sánh giữa 3 khung dữ liệu bằng cách sử dụng

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
30 Cảm ơn

    Id    Year    Item  sales_Amount1  sales_Amount2  target_Amount
    1234  1.2019   Badam             0              70            100
    1234  1.2019   Badam             12              0            0
    1234  1.2019  carrot             0               0            200
    1234  1.2019  carrot             18              0            0

Tôi đang cố đọc một tệp excel có một cột (được gọi là “raster”) gồm các số có dấu nháy đơn ở đầu (để Excel có thể hiểu chúng là văn bản) vì đây là một cách phổ biến để duy trì các số 0 đứng đầu cho các số. Các số phải luôn có 6 chữ số. Ngoài ra, một số giá trị trong cột này bị thiếu

Tệp tôi đang sử dụng cho ví dụ này có thể được tìm thấy tại đây

Mẫu mã, một ví dụ có thể sao chép nếu có thể

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)

Điều này trả về

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object

Khi tôi đọc nó mà không có bất kỳ khai báo kiểu dữ liệu rõ ràng nào, cột được đọc với kiểu đối tượng float64 như có thể thấy ở trên và kết quả là các số 0 ở đầu biến mất. Tiếp theo, khi tôi sử dụng hàm fillna để thay thế các giá trị NaN và sử dụng một chuỗi, cột sẽ trở thành kiểu dữ liệu đối tượng để tính đến điều này (theo như tôi hiểu)

df.raster = df.raster.fillna("999999")
print(df.raster)

Điều này trả về

0     20099
1     20099
2    999999
Name: raster, dtype: object

Giả sử rằng cột bây giờ thuộc loại đối tượng (i. e. chuỗi), tôi tiếp tục thực hiện phần đệm để biến chúng trở lại 6 chữ số

print(df.raster.str.pad(6, side="left", fillchar="0"))

Điều này trả về

0       NaN
1       NaN
2    999999
Name: raster, dtype: object

Đây là kết quả bất ngờ đối với tôi

Tôi đã cố tình không thực hiện các thay đổi vĩnh viễn (do đó bản in cùng dòng với phần đệm)

Điều này khiến tôi nhận ra rằng các số thực sự không được chuyển đổi thành chuỗi khi tôi thay thế NaN bằng “999999” kể từ khi tôi thử điều này

print(df.raster.astype(str))

Điều này trả về một đại diện khác của cột khi được chuyển đổi rõ ràng thành chuỗi (và tôi đã kiểm tra điều này hoạt động đáng tin cậy như chuỗi sau này tôi cũng vậy. e. với đệm vv. )

________số 8

Điểm mấu chốt. Tôi biết tôi có thể tránh được rắc rối này bằng cách xác định rõ ràng các kiểu dữ liệu ngay từ đầu nhưng vì tôi quên làm điều đó và sau đó gặp phải hành vi kỳ lạ này, tôi nghĩ điều đáng nói ở đây. Bất cứ điều gì làm cho gấu trúc tốt hơn đều khiến tôi hài lòng vì cá nhân tôi rất thích làm việc với gấu trúc

Khi thực hiện phân tích dữ liệu, điều quan trọng là đảm bảo các loại dữ liệu chính xác. Nếu không, bạn có thể nhận được kết quả hoặc lỗi không mong muốn. Trong trường hợp của Pandas, nó sẽ suy luận chính xác các loại dữ liệu trong nhiều trường hợp và bạn có thể tiếp tục với phân tích của mình mà không cần suy nghĩ thêm về chủ đề này

Mặc dù gấu trúc hoạt động tốt như thế nào, tại một số điểm trong quá trình phân tích dữ liệu của bạn, bạn có thể sẽ cần chuyển đổi rõ ràng dữ liệu từ loại này sang loại khác. Bài viết này sẽ thảo luận về cách thay đổi dữ liệu thành kiểu số. Cụ thể hơn, bạn sẽ học cách sử dụng các phương pháp tích hợp sẵn của Pandas

>>> df.int_col.dtypesdtype('int64')
5 và
>>> df.int_col.dtypesdtype('int64')
6 để giải quyết các vấn đề phổ biến sau

  1. Chuyển đổi chuỗi/int thành int/float
  2. Chuyển đổi float sang int
  3. Chuyển đổi một cột của các loại dữ liệu hỗn hợp
  4. Xử lý các giá trị còn thiếu
  5. Chuyển đổi một cột tiền để thả nổi
  6. Chuyển đổi boolean thành 0/1
  7. Chuyển đổi nhiều cột dữ liệu cùng lúc
  8. Xác định loại dữ liệu khi đọc tệp CSV
  9. Tạo một chức năng tùy chỉnh để chuyển đổi loại dữ liệu
  10. >>> df.int_col.dtypesdtype('int64')
    5 so với.
    >>> df.int_col.dtypesdtype('int64')
    6

Để trình diễn, chúng tôi tạo một tập dữ liệu và sẽ tải nó bằng một hàm

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
3

hình ảnh của tác giả

Vui lòng kiểm tra repo Github để biết mã nguồn

Kiểm tra kiểu dữ liệu

Trước khi chúng tôi đi sâu vào các loại dữ liệu thay đổi, hãy xem nhanh cách kiểm tra các loại dữ liệu. Nếu chúng tôi muốn xem tất cả các loại dữ liệu trong DataFrame, chúng tôi có thể sử dụng thuộc tính

>>> df.int_col.dtypesdtype('int64')
9

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
5

Thuộc tính này cũng có trong Series và chúng ta có thể sử dụng nó để kiểm tra kiểu dữ liệu trên một cột cụ thể. Chẳng hạn, hãy kiểm tra kiểu dữ liệu của int_col

>>> df.int_col.dtypesdtype('int64')

Nếu chúng tôi muốn khám phá dữ liệu, phương pháp

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
70 có thể hữu ích hơn vì nó cung cấp RangeIndex, tổng số cột, số lượng không null, dtypes và mức sử dụng bộ nhớ. Đây là nhiều thông tin có giá trị giúp chúng ta nắm bắt được bức tranh tổng thể hơn về dữ liệu

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
71. Chuyển đổi chuỗi thành int/float

Cách đơn giản nhất để chuyển đổi một cột Pandas sang một loại khác là sử dụng phương thức của Sê-ri

>>> df.int_col.dtypesdtype('int64')
5. Chẳng hạn, để chuyển đổi chuỗi thành số nguyên, chúng ta có thể gọi nó như sau

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
0

Chúng ta có thể thấy rằng nó đang sử dụng số nguyên 64 bit theo mặc định. Trong một số trường hợp, việc sử dụng các số nguyên ngắn hơn có thể hiệu quả hơn về bộ nhớ khi xử lý một tập dữ liệu lớn. Để làm điều đó, bạn chỉ cần gọi

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
72 ,
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
73 hoặc
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
74

Tương tự, nếu muốn chuyển kiểu dữ liệu sang float, chúng ta có thể gọi

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
75. Theo mặc định, nó đang sử dụng số dấu phẩy động 64 bit. Chúng ta có thể sử dụng
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
76 để có độ chính xác cao hơn hoặc
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
77 để có hiệu quả bộ nhớ tốt hơn

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
72. Chuyển đổi float thành int

Nếu chúng ta muốn chuyển đổi một cột float thành số nguyên, chúng ta có thể thử sử dụng

>>> df.int_col.dtypesdtype('int64')
5 mà chúng ta đã sử dụng ở trên

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
9

hình ảnh của tác giả

Tuy nhiên, có một chút vấn đề. Bằng cách hiển thị DataFrame, chúng ta có thể thấy rằng cột được chuyển đổi thành số nguyên nhưng làm tròn tất cả các giá trị xuống. Nó có thể ổn, nhưng trong hầu hết các trường hợp, tôi sẽ tưởng tượng rằng không. Nếu chúng ta muốn chuyển đổi thành số nguyên và làm tròn theo cách mà chúng ta mong đợi, trước tiên chúng ta có thể thực hiện

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
79

df.raster = df.raster.fillna("999999")
print(df.raster)
1

hình ảnh của tác giả

Bây giờ, số

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
00 được làm tròn thành
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
01

3. Chuyển đổi một cột của các loại hỗn hợp

Hãy chuyển sang một cột gồm các chuỗi và số hỗn hợp. Khi chạy

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
02, chúng tôi nhận được ValueError

df.raster = df.raster.fillna("999999")
print(df.raster)
5

hình ảnh của tác giả

Lỗi cho thấy đó là sự cố với giá trị

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
03 vì không thể chuyển đổi thành số nguyên. Để giải quyết vấn đề này, chúng ta có thể sử dụng hàm Pandas
>>> df.int_col.dtypesdtype('int64')
6 với đối số
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
05

df.raster = df.raster.fillna("999999")
print(df.raster)
9

Nhưng khi kiểm tra

>>> df.int_col.dtypesdtype('int64')
9, bạn sẽ thấy nó được chuyển đổi thành
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
07

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
50

Trong một số trường hợp, bạn không muốn xuất ra giá trị float mà bạn muốn nó là số nguyên, chẳng hạn như chuyển đổi cột ID. Chúng ta có thể gọi

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
08. Lưu ý rằng nó có vốn
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
09 và khác với Numpy
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
70. Điều này làm là thay đổi
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71 của Numpy thành
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
72 của Pandas và điều này cho phép nó là một số nguyên

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
51

Ngoài ra, chúng ta có thể thay thế Numpy

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
73 bằng một giá trị khác (ví dụ: thay thế
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71 bằng
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
75) và gọi
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
02

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
524. Xử lý các giá trị còn thiếu

Bây giờ chúng ta nên được trang bị đầy đủ để xử lý các giá trị còn thiếu. Trong Pandas, các giá trị bị thiếu được gán giá trị

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71, viết tắt của “Không phải là số”. Vì lý do kỹ thuật, các giá trị
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71 này luôn là của
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
07

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
53

Khi chuyển đổi một cột có giá trị bị thiếu thành số nguyên, chúng tôi cũng sẽ nhận được ValueError vì không thể chuyển đổi

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71 thành số nguyên

hình ảnh của tác giả

Để khắc phục lỗi, chúng ta có thể gọi

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
08 như chúng ta đã làm ở trên (Lưu ý đó là
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
09 viết hoa, giống như đã đề cập trong phần trước). Điều này làm là thay đổi
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71 của Numpy thành
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
72 của Pandas và điều này cho phép nó là một số nguyên

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
54

Ngoài ra, chúng ta có thể thay thế Numpy

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71 bằng một giá trị khác (ví dụ: thay thế
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71 bằng
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
75) và gọi
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
02

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
55

Nếu bạn muốn tìm hiểu thêm về cách xử lý các giá trị bị thiếu, bạn có thể xem

Làm việc với các giá trị còn thiếu trong Pandas

Hướng dẫn về giá trị bị thiếu trong Pandas và cách sử dụng các phương thức tích hợp sẵn để xử lý chúng

hướng tới khoa học dữ liệu. com

5. Chuyển cột tiền thành số

Hãy chuyển sang cột tiền. Vấn đề là nếu chúng tôi đang sử dụng phương pháp trên, chúng tôi sẽ nhận được tất cả các giá trị

 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71 hoặc
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
72 vì chúng đều là các chuỗi có ký hiệu
df.raster = df.raster.fillna("999999")
print(df.raster)
11 và
df.raster = df.raster.fillna("999999")
print(df.raster)
12 và chúng không thể được chuyển đổi thành số. Vì vậy, điều đầu tiên chúng ta phải làm là xóa tất cả các biểu tượng không hợp lệ

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
56

Chúng tôi xâu chuỗi 2 cuộc gọi

df.raster = df.raster.fillna("999999")
print(df.raster)
13, một cho
df.raster = df.raster.fillna("999999")
print(df.raster)
11 và một cho
df.raster = df.raster.fillna("999999")
print(df.raster)
12, để thay thế chúng bằng một chuỗi trống

Nếu bạn đã quen với biểu thức chính quy, chúng ta cũng có thể thay thế các ký hiệu đó bằng biểu thức chính quy

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
57

df.raster = df.raster.fillna("999999")
print(df.raster)
16 nói rằng chúng tôi muốn thay thế
df.raster = df.raster.fillna("999999")
print(df.raster)
11 và
df.raster = df.raster.fillna("999999")
print(df.raster)
12 bằng một chuỗi rỗng. Đối số
df.raster = df.raster.fillna("999999")
print(df.raster)
19 giả định mẫu được truyền vào là một biểu thức chính quy (Lưu ý rằng nó mặc định là
df.raster = df.raster.fillna("999999")
print(df.raster)
50)

6. Chuyển đổi boolean thành 0/1

Chúng tôi có

df.raster = df.raster.fillna("999999")
print(df.raster)
50/
df.raster = df.raster.fillna("999999")
print(df.raster)
52, nhưng bạn có thể tưởng tượng một trường hợp cần những thứ này như
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
75 và
df.raster = df.raster.fillna("999999")
print(df.raster)
54, chẳng hạn, nếu bạn đang xây dựng một mô hình học máy và đây là một trong những tính năng đầu vào của bạn, thì bạn cần nó phải là số và . Điều này thực sự rất đơn giản, bạn chỉ cần gọi
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
02

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
587. Chuyển đổi nhiều kiểu dữ liệu cột cùng một lúc

Cho đến nay, chúng tôi đã chuyển đổi loại dữ liệu một cột tại một thời điểm. Ví dụ

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
59

Có một phương thức DataFrame còn có tên là

>>> df.int_col.dtypesdtype('int64')
5 cho phép chúng ta chuyển đổi nhiều kiểu dữ liệu cột cùng một lúc. Tiết kiệm thời gian khi bạn có nhiều cột muốn thay đổi

>>> df.int_col.dtypesdtype('int64')
08. Xác định kiểu dữ liệu của từng cột khi đọc tệp CSV

Nếu bạn muốn đặt kiểu dữ liệu cho từng cột khi đọc tệp CSV, bạn có thể sử dụng đối số

df.raster = df.raster.fillna("999999")
print(df.raster)
91 khi tải dữ liệu bằng
df.raster = df.raster.fillna("999999")
print(df.raster)
92

>>> df.int_col.dtypesdtype('int64')
1

Đối số

df.raster = df.raster.fillna("999999")
print(df.raster)
91 lấy một từ điển với khóa đại diện cho cột và giá trị đại diện cho kiểu dữ liệu. Sự khác biệt giữa phương pháp này và phương pháp trên là phương pháp này thực hiện chuyển đổi trong quá trình đọc và có thể tiết kiệm thời gian và hiệu quả hơn về bộ nhớ

9. Tạo một chức năng tùy chỉnh để chuyển đổi dữ liệu thành số

Khi dữ liệu hơi phức tạp để chuyển đổi, chúng ta có thể tạo một hàm tùy chỉnh và áp dụng nó cho từng giá trị để chuyển đổi sang loại dữ liệu phù hợp

Chẳng hạn, cột money_col, đây là một hàm đơn giản mà chúng ta có thể sử dụng

>>> df.int_col.dtypesdtype('int64')
2

Chúng ta cũng có thể sử dụng hàm lambda

>>> df.int_col.dtypesdtype('int64')
310. Sự khác biệt giữa
>>> df.int_col.dtypesdtype('int64')
5 và
>>> df.int_col.dtypesdtype('int64')
6

Cách đơn giản nhất để chuyển đổi kiểu dữ liệu từ loại này sang loại khác là sử dụng phương thức

>>> df.int_col.dtypesdtype('int64')
5. Phương pháp này được hỗ trợ bởi cả Pandas DataFrame và Series. Nếu bạn đã có kiểu dữ liệu số (
df.raster = df.raster.fillna("999999")
print(df.raster)
97,
df.raster = df.raster.fillna("999999")
print(df.raster)
98,
df.raster = df.raster.fillna("999999")
print(df.raster)
99,
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
500,
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
501,
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
502,
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
07,
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
504, and
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
505), bạn cũng có thể sử dụng
>>> df.int_col.dtypesdtype('int64')
5 để

  • chuyển đổi nó thành kiểu dữ liệu số khác (int thành float, float thành int, v.v. )
  • sử dụng nó để truyền xuống kích thước byte nhỏ hơn hoặc upcast lên kích thước byte lớn hơn

Tuy nhiên,

>>> df.int_col.dtypesdtype('int64')
5 sẽ không hoạt động đối với cột có nhiều loại khác nhau. Chẳng hạn, mix_col có
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
508 và missing_col có
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71. Nếu chúng tôi cố gắng sử dụng
>>> df.int_col.dtypesdtype('int64')
5, chúng tôi sẽ nhận được ValueError. Kể từ Pandas 0. 20. 0, lỗi này có thể được khắc phục bằng cách đặt đối số
df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
511 nhưng dữ liệu gốc của bạn sẽ được trả về nguyên vẹn

Hàm Pandas

>>> df.int_col.dtypesdtype('int64')
6 có thể xử lý các giá trị này một cách dễ dàng hơn. Thay vì thất bại, chúng ta có thể đặt đối số
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
05 để ép buộc các giá trị không hợp lệ thành
 raster benennung
0  20099.0      Test
1  20099.0    Test 2
2      NaN    Test 3

raster       float64
benennung     object
dtype: object
71

>>> df.int_col.dtypesdtype('int64')
4Kết luận

Chúng ta đã thấy cách chúng ta có thể chuyển đổi cột dữ liệu Pandas thành kiểu số với

>>> df.int_col.dtypesdtype('int64')
5 và
>>> df.int_col.dtypesdtype('int64')
6.
>>> df.int_col.dtypesdtype('int64')
5 là cách đơn giản nhất và cung cấp nhiều khả năng hơn trong cách chuyển đổi, trong khi
>>> df.int_col.dtypesdtype('int64')
6 có nhiều chức năng mạnh mẽ hơn để xử lý lỗi

Tôi hy vọng bài viết này sẽ giúp bạn tiết kiệm thời gian trong việc học Pandas. Tôi khuyên bạn nên xem tài liệu về API

df = pd.read_excel("test.xlsx", 
                   names=["raster", "benennung"],
                   sheet_name="Tabelle1",
                  )
print(df)
print(df.dtypes)
519 và
>>> df.int_col.dtypesdtype('int64')
6 và để biết về những thứ khác mà bạn có thể làm

Cảm ơn vì đã đọc. Vui lòng kiểm tra sổ ghi chép để biết mã nguồn và tiếp tục theo dõi nếu bạn quan tâm đến khía cạnh thực tế của máy học

Chức năng gấu trúc nào có thể được sử dụng để xuất dữ liệu của bạn dưới dạng tệp Excel?

Bạn có thể xuất Khung dữ liệu Pandas sang tệp Excel bằng cách sử dụng to_excel .

Gấu trúc có đọc CSV nhanh hơn Excel không?

Ý tưởng #2. Sử dụng CSV thay vì Tệp Excel . xlsx) từ ERP/Hệ thống/SAP của chúng tôi. Nhập tệp csv bằng Python nhanh hơn 100 lần so với tệp Excel . Bây giờ chúng tôi có thể tải các tệp này trong 0. 63 giây.

Làm cách nào để tạo một tệp Excel từ danh sách trong Python?

Làm cách nào để tạo tệp Excel bằng Python? .
Tạo một đối tượng mới của lớp Workbook
Truy cập Worksheet mong muốn trong workbook bằng Workbook. getWorksheets(). phương thức lấy (chỉ mục)
Đặt giá trị vào ô mong muốn bằng Worksheet. getCell(). lấy(“A1”)
Lưu sổ làm việc dưới dạng. xlsx bằng Workbook. phương thức lưu ()

Làm thế nào gấu trúc làm việc với Excel?

Chúng ta chỉ cần nhập gấu trúc, sử dụng phương thức read_csv() và viết tên của tệp Excel/CSV trong ngoặc đơn . Trong đoạn mã trên, chúng tôi đã đổi tên gấu trúc thành “pd. ” Đây chỉ là quy ước đặt tên cho gấu trúc. Sau khi chạy đoạn mã trên, bạn sẽ thấy khung dữ liệu sau. Đó là tất cả những gì bạn cần để tạo một khung dữ liệu.