Vì vậy, tôi đã chuyển đổi một CSV có tên trong một cột và giá trị trong cột thứ hai thành hai mảng, một mảng cho tên và một mảng cho các giá trị. Tôi muốn chuyển đổi nó thành một bảng đánh đồng hai, vì vậy mục đầu tiên trong mảng tên được liên kết với mục đầu tiên trong giá trị. Làm thế nào để tôi làm điều này?
import csv
data = csv.reader[open['C:\\Users\\Grant\\Documents\\finalproject\\centers.csv', 'r'], delimiter=",", quotechar='|']
names, values = [], []
for row in data:
names.append[row[0]]
values.append[row[1]]
Joe Iddon
Huy hiệu vàng 19,6K77 gold badges32 silver badges51 bronze badges
Đã hỏi ngày 2 tháng 12 năm 2017 lúc 20:01Dec 2, 2017 at 20:01
5
names = ["a", "b", "c"]
values = [1, 2, 3]
for n, v in zip[names, values]:
print["{} = {}".format[n, v]]
Đã trả lời ngày 2 tháng 12 năm 2017 lúc 20:10Dec 2, 2017 at 20:10
Pahopahopaho
1.1229 huy hiệu bạc13 huy hiệu đồng9 silver badges13 bronze badges
2
Vì bạn nói
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]0, tôi sẽ đề nghị bạn đi với DataFrames bởi Pandas.
Giả sử danh sách tên của bạn là
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]1 và danh sách giá trị là
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]2,
Bạn có thể có một cái gì đó như:
data = {'names': names, 'values': values}
df = pandas.DataFrame[data=data]
Tất nhiên bạn phải
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]3 trước.
Điều này sẽ cung cấp cho bạn một "bảng" [hoặc dataFrame?] Giống như:
names values
0 Byakuya 500
1 Kenpachi 600
2 Kon 50
Đọc thêm ở đây.
Đã trả lời ngày 2 tháng 12 năm 2017 lúc 20:11Dec 2, 2017 at 20:11
Sayan Silsayan SilSayan Sil
5.3803 Huy hiệu vàng15 Huy hiệu bạc31 Huy hiệu đồng3 gold badges15 silver badges31 bronze badges
Có rất nhiều sự linh hoạt trong cách mà một bảng có thể được xây dựng ban đầu. Chi tiết về các đầu vào cho các hàm tạo
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 và
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]5 nằm trong phần chi tiết khởi tạo. Tuy nhiên, cách tốt nhất để hiểu làm thế nào để làm một bảng là ví dụ.
Ví dụ;
Thành lập¶
Đối với các ví dụ sau, bạn cần nhập các lớp
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]5,
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 và
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]8 cùng với gói đơn vị và số lượng [astropy.units] và gói
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]9:Units and Quantities [astropy.units] package and the
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]9 package:
>>> from astropy.table import QTable, Table, Column >>> from astropy import units as u >>> import numpy as np
Tạo từ đầu
Một
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 có thể được tạo mà không cần bất kỳ dữ liệu đầu vào ban đầu nào hoặc thậm chí không có bất kỳ cột ban đầu nào. Điều này rất hữu ích cho việc xây dựng các bảng một cách linh hoạt nếu kích thước, cột hoặc dữ liệu ban đầu không được biết đến.
Ghi chú
Thêm các hàng yêu cầu tạo một bản sao mới của toàn bộ bảng mỗi lần, vì vậy trong trường hợp các bảng lớn, điều này có thể chậm. Mặt khác, thêm các cột là nhanh.
>>> t = Table[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] >>> t['c'] = ['x', 'y'] >>> t = Table[names=['a', 'b', 'c'], dtype=['f4', 'i4', 'S2']] >>> t.add_row[[1, 2.0, 'x']] >>> t.add_row[[4, 5.0, 'y']] >>> t = Table[dtype=[['a', 'f4'], ['b', 'i4'], ['c', 'S2']]]
Nếu các cột dữ liệu của bạn có các đơn vị vật lý được liên kết với chúng thì chúng tôi khuyên bạn nên sử dụng lớp
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]5. Điều này sẽ cho phép cột được lưu trữ trong bảng dưới dạng
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 2 bản địa và mang toàn bộ sức mạnh của các đơn vị và số lượng [astropy.units] vào bảng. Xem số lượng và QTABLE để biết chi tiết.Units and Quantities [astropy.units] to the table. See Quantity and QTable for details.
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]Danh sách các cột
Một trường hợp điển hình là nơi bạn có một số cột dữ liệu có cùng độ dài được xác định trong các biến khác nhau. Đây có thể là danh sách Python hoặc mảng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]9 hoặc kết hợp cả hai. Chúng có thể được sử dụng để tạo>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 bằng cách đặt các biến dữ liệu cột vào danh sách Python. Trong trường hợp này, các tên cột không được xác định bởi dữ liệu đầu vào, do đó chúng phải được đặt bằng từ khóa>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 hoặc chúng sẽ được tạo tự động là
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 6.
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y
Tạo một bảng mới sử dụng các cột từ bảng đầu tiên
Khi bạn có
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4, thì bạn có thể tạo một bảng mới bằng cách chọn các cột và đặt chúng vào danh sách Python [ví dụ:>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 8]:
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4
Tạo một bảng mới bằng cách sử dụng các biểu thức liên quan đến các cột
Đối tượng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]8 có nguồn gốc từ tiêu chuẩn>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 và có thể được sử dụng trực tiếp trong các biểu thức số học. Điều này cho phép một cách nhỏ gọn để tạo một bảng mới với các giá trị cột được sửa đổi:
>>> Table[[t['a']**2, t['b'] + 10]]a b int32 float64 ----- ------- 1 12.0 16 15.0
Các loại dữ liệu cột khác nhau
Phương thức đầu vào danh sách cho
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 rất linh hoạt vì bạn có thể sử dụng hỗn hợp các loại dữ liệu khác nhau để khởi tạo bảng:0names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Lưu ý rằng trong cột thứ ba, tên cột hiện có
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 2 được sử dụng.
Diễn ngôn của cột
Một
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3 của dữ liệu cột có thể được sử dụng để khởi tạo
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4:1names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Chỉ định thứ tự cột và tùy chọn các kiểu dữ liệu
2names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Các loại dữ liệu cột khác nhau
Phương thức đầu vào danh sách cho
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 rất linh hoạt vì bạn có thể sử dụng hỗn hợp các loại dữ liệu khác nhau để khởi tạo bảng: 3names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Lưu ý rằng trong cột thứ ba, tên cột hiện có
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 2 được sử dụng.
Diễn ngôn của cột
4names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Một
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3 của dữ liệu cột có thể được sử dụng để khởi tạo
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4:Chỉ định thứ tự cột và tùy chọn các kiểu dữ liệu
Dữ liệu cột đầu vào có thể là bất kỳ loại dữ liệu nào có thể khởi tạo đối tượng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]8:Lưu ý rằng khóa
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 6 được ưu tiên hơn tên cột hiện có
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 2 trong cột thứ ba. Cũng thấy rằng cột
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 8 là một cột vector trong đó mỗi phần tử hàng là một mảng hai phần tử.
5names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Đổi tên các cột là không thể
Dữ liệu hàng
6names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Dữ liệu định hướng hàng có thể được sử dụng để tạo bảng bằng đối số từ khóa
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 9.
7names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Liệt kê hoặc tuple của hồ sơ dữ liệu
8names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Nếu bạn có dữ liệu đầu vào định hướng hàng như danh sách các bản ghi, bạn cần sử dụng từ khóa
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 9 để tạo bảng:
Danh sách các đối tượng Dict
Bạn cũng có thể khởi tạo một bảng với các giá trị hàng. Điều này được xây dựng như một danh sách các đối tượng
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3. Các phím xác định tên cột:
Nếu có các phím bị thiếu trong một hoặc nhiều hàng thì các giá trị tương ứng sẽ được đánh dấu là thiếu [mặt nạ]:
0data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Bạn có thể chỉ định thứ tự cột với đối số
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5:
Ghi chú
Thêm các hàng yêu cầu tạo một bản sao mới của toàn bộ bảng mỗi lần, vì vậy trong trường hợp các bảng lớn, điều này có thể chậm. Mặt khác, thêm các cột là nhanh.
Mảng có cấu trúc numpy
Mảng có cấu trúc là cơ chế tiêu chuẩn trong
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]9 để lưu trữ dữ liệu bảng không đồng nhất. Hầu hết các gói I/O khoa học đọc các tệp bảng [ví dụ:04,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
05 và Asciable] sẽ trả lại bảng trong một đối tượng dựa trên mảng có cấu trúc. Một mảng có cấu trúc có thể được tạo bằng cách sử dụng:names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
1data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Từ
06 có thể tạo đối tượngnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 tương ứng:2data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Lưu ý rằng trong ví dụ trên và hầu hết các ví dụ sau đây, chúng tôi đang tạo một bảng và ngay lập tức yêu cầu trình thông dịch Python tương tác in bảng để xem những gì chúng tôi đã làm. Trong mã thực, bạn có thể làm một cái gì đó như:
3data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Mảng có cấu trúc như một cột
Trong một số trường hợp, thuận tiện để bao gồm một mảng có cấu trúc như một cột duy nhất trong bảng. Lớp
08 là một trường hợp trong Astropy trong đó điều này được thực hiện, trong đó cột có cấu trúc có ba yếu tốnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
09,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
10 vànames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
11. Một ví dụ khác sẽ là một tham số mô hình có giá trị, giá trị được phép tối thiểu và giá trị được phép tối đa. Ở đây chúng tôi chứng minh bao gồm cả mảng có cấu trúc đơn giản được xác định trước đây là cột:names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
4data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Bạn có thể truy cập hoặc in một trường duy nhất trong cột có cấu trúc như sau:
5data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Tên cột mới
Các tên cột có thể được thay đổi từ các giá trị ban đầu bằng cách cung cấp đối số
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5:
6data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Các loại dữ liệu mới
Kiểu dữ liệu cho mỗi cột cũng có thể được thay đổi với
13:names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
7data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Mảng đồng nhất không có
Một mảng 1D
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]9 được coi là một bảng hàng duy nhất trong đó mỗi phần tử của mảng tương ứng với một cột:8data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Một mảng 2D
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]9 [trong đó tất cả các phần tử có cùng loại] cũng có thể được chuyển đổi thành>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4. Trong trường hợp này, các tên cột không được người dùng chỉ định và phải được cung cấp bởi người dùng hoặc sẽ được tạo tự động dưới dạng>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 6 trong đó
18 là số cột.names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Ví dụ cơ bản với tên cột tự động
9data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Tên và loại cột được chỉ định
0names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Tham khảo dữ liệu gốc
Có thể tham chiếu dữ liệu gốc miễn là các loại dữ liệu không được thay đổi:
1names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Xem phần Bản sao so với tham chiếu để biết thêm thông tin.
Mảng python so với mảng numpy làm đầu vào
Có một vấn đề hơi tinh tế, rất quan trọng để hiểu về cách tạo ra các đối tượng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4. Bất kỳ đầu vào dữ liệu nào trông giống như Python20 [bao gồm cảnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
21] được coi là một danh sách các cột. Ngược lại, đầu vàonames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 đồng nhất được hiểu là danh sách các hàng:
2names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Sự phân đôi này là cần thiết để hỗ trợ đầu vào danh sách linh hoạt trong khi vẫn giữ được sự giải thích tự nhiên của các mảng 2D
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]9 trong đó chỉ mục đầu tiên tương ứng với dữ liệu của các hàng và chỉ số thứ hai tương ứng với các cột dữ liệu.Từ một bảng hiện có
Một bảng mới có thể được tạo bằng cách chọn một tập hợp con của các cột trong một bảng hiện có:
3names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Một cách khác là sử dụng thuộc tính
24 [được giải thích trong phần bảng tính] để khởi tạo một bảng mới. Điều này cho phép bạn chọn các cột theo chỉ mục số hoặc tên của họ và hỗ trợ cú pháp cắt:names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
4names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Để tạo một bản sao của một bảng hiện có trống [không có hàng]:
5names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Mảng trống có kích thước đã biết
Nếu bạn biết kích thước mà bảng của bạn sẽ là, nhưng không biết trước các giá trị, bạn có thể tạo
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 không và xây dựng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 từ nó:6names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Ví dụ: sau đó bạn có thể điền vào hàng bảng này theo từng hàng với các giá trị được trích xuất từ một bảng khác hoặc được tạo khi đang bay:
7names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Chi tiết khởi tạo Jo
Một đối tượng bảng được tạo bằng cách khởi tạo đối tượng lớp
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 với các đối số sau, tất cả đều là tùy chọn:00names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0,
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3,
20,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 hoặc đối tượng giống như bảng, tùy chọn>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0,
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3,
20,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4, or table-like object, optionalDữ liệu để khởi tạo bảng.
33names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
34, tùy chọnnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
34, optionalnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Chỉ định xem bảng có bị che dấu không.
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5
20, tùy chọnnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
20, optionalnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Chỉ định tên cột.
13names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
20, tùy chọnnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
20, optionalnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Chỉ định các loại dữ liệu cột.
39names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, tùy chọn
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, optional
Siêu dữ liệu liên quan đến bảng.
41names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
34, tùy chọnnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
34, optionalnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Sao chép dữ liệu đầu vào. Nếu đầu vào là
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4,39 luôn được sao chép bất kể tham sốnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
41. Mặc định lànames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
46.names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 9
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0,
20 của Danh sách, Tùy chọnnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0,
20 of lists, optionalnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Dữ liệu định hướng hàng cho bảng thay vì đối số
00.names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
51names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
34, tùy chọnnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
34, optionalnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Sao chép bất kỳ chỉ số nào trong dữ liệu đầu vào. Mặc định là
46.names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
54names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
20,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, tùy chọn
20,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, optional
Liệt kê hoặc độc lực của các đơn vị để áp dụng cho các cột.
57names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
20,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, tùy chọn
20,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, optional
Liệt kê hoặc bắt buộc các mô tả để áp dụng cho các cột.
60names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, tùy chọn
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, optional
Từ khóa bổ sung Args khi chuyển đổi đối tượng giống như bảng.
Các tiểu mục sau đây cung cấp thêm chi tiết về các giá trị và tùy chọn cho từng đối số từ khóa có thể được sử dụng để tạo một đối tượng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 mới.dữ liệu¶
Đối tượng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 có thể được khởi tạo với một số hình thức khác nhau cho đối số00.Numpy Ndarray [mảng có cấu trúc]names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Tên cột cơ sở là tên trường của mảng có cấu trúc
00. Danh sáchnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 [tùy chọn] có thể được sử dụng để chọn các trường cụ thể và/hoặc sắp xếp lại các tên cơ sở. Danh sách
13 [tùy chọn] phải khớp với độ dài củanames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 và được sử dụng để ghi đè các loại
00 hiện có.Numpy Ndarray [đồng nhất]names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Nếu
00 lànames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 một chiều thì nó được coi là một bảng hàng duy nhất trong đó mỗi phần tử của mảng tương ứng với một cột.
Nếu
00 lànames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 ít nhất hai chiều, thì chỉ số thứ nhất [nhất bên trái] tương ứng với số hàng [chiều dài bảng] và chỉ số thứ hai tương ứng với số cột [chiều rộng bảng]. Kích thước cao hơn được hấp thụ trong hình dạng của mỗi ô bảng.
Nếu được cung cấp, danh sách
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 phải phù hợp với chiều rộng của nhóm của đối số
00. Mặc định chonames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 là tự động tạo tên cột trong mẫu
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 6. Nếu được cung cấp, danh sách
13 ghi đè các loại cột cơ sở và phải khớp với độ dài củanames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5.dict-like
Các khóa của đối tượng
00 xác định tên cột cơ sở. Các giá trị tương ứng có thể là các đối tượngnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]8, mảng>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]9 hoặc các đối tượng giống như danh sách. Danh sách>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 [tùy chọn] có thể được sử dụng để chọn các trường cụ thể và/hoặc sắp xếp lại các tên cơ sở. Danh sách
13 [tùy chọn] phải khớp với độ dài củanames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 và được sử dụng để ghi đè các loại dữ liệu hiện có hoặc mặc định.list-like
Mỗi mục trong danh sách
00 cung cấp một cột các giá trị dữ liệu và có thể là đối tượngnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]8,>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 hoặc đối tượng giống như danh sách. Danh sách
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 xác định tên của mỗi cột. Các tên sẽ được tạo tự động nếu không được cung cấp [với đối số
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 hoặc bởi các đối tượng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]8]. Nếu được cung cấp, đối số>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 phải khớp với số lượng mục trong danh sách
00. Danh sáchnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
13 tùy chọn sẽ ghi đè các loại dữ liệu hiện có hoặc mặc định và phải khớp với độ dàinames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5.list-of-dicts
Tương tự như Python, tích hợp
96, mỗi mục trong danh sáchnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
00 cung cấp một hàng giá trị dữ liệu và phải lànames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3. Các giá trị khóa trong mỗi
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3 xác định tên cột. Đối số
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 có thể được cung cấp để chỉ định đặt hàng cột. Nếu
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 không được cung cấp thì đặt hàng cột sẽ được xác định bởi
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3 đầu tiên nếu nó chứa các giá trị cho tất cả các cột hoặc bằng cách sắp xếp các tên cột theo thứ tự bảng chữ cái nếu không. Danh sách
13 có thể được chỉ định và phải tương ứng với thứ tự của các cột đầu ra.Đối tượng giống như bảngnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Nếu một đối tượng giống như bảng khác có phương thức
04 thì đối tượng đó có thể được sử dụng để trực tiếp tạodata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4. Xem phần đối tượng giống như bảng để biết chi tiết.Không cóKhởi tạo một bảng có độ dài bằng không. Nếu
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 và tùy chọn
13 được cung cấp, thì các cột tương ứng được tạo.names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
tên
Đối số
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 cung cấp một cách để chỉ định tên cột bảng hoặc ghi đè lên các tên hiện có. Theo mặc định, các tên cột được lấy từ các tên hiện có [cho đầu vào
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 hoặc
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4] hoặc tự động tạo là>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 6. Nếu
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 được cung cấp, thì nó phải là một danh sách có cùng độ dài với số lượng cột. Bất kỳ yếu tố danh sách nào có giá trị
13 rơi trở lại tên mặc định.data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Trong trường hợp
00 được cung cấp dưới dạngnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3 của các cột, đối số
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 có thể được cung cấp để chỉ định thứ tự của các cột. Danh sách
>>> a = np.array[[1, 4], dtype=np.int32] >>> b = [2.0, 5.0] >>> c = ['x', 'y'] >>> t = Table[[a, b, c], names=['a', 'b', 'c']] >>> ta b c int32 float64 str1 ----- ------- ---- 1 2.0 x 4 5.0 y 5 sau đó phải chứa từng khóa trong
00names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3.
DTYPE¶
Đối số
13 cung cấp một cách để chỉ định các loại dữ liệu cột bảng hoặc ghi đè các loại hiện có. Theo mặc định, các loại được lấy từ các loại hiện có [cho đầu vàonames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 hoặc
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4] hoặc tự động tạo bởi thói quen23. Nếudata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
13 được cung cấp thì nó phải là một danh sách có cùng độ dài với số lượng cột. Các giá trị phải hợp lệnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
25 khởi tạo hoặcdata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
13. Bất kỳ yếu tố danh sách nào có giá trịdata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
13 rơi trở lại loại mặc định.data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
bản sao;
Trong trường hợp
00 là đối tượngnames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0,
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3 hoặc
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 hiện có, có thể sử dụng tham chiếu đến dữ liệu hiện có bằng cách đặt32. Điều này có lợi thế là giảm sử dụng bộ nhớ và nhanh hơn. Tuy nhiên, bạn nên cẩn thận vì mọi sửa đổi đối với dữ liệudata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 mới cũng sẽ được nhìn thấy trong dữ liệu đầu vào ban đầu. Xem phần Bản sao so với tham chiếu để biết thêm thông tin.hàng
Đối số này cho phép cung cấp dữ liệu như một chuỗi các hàng, trái ngược với từ khóa
00, thường giả định dữ liệu là một chuỗi các cột. Phần dữ liệu hàng cung cấp chi tiết.names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Copy_Indices¶
Nếu bạn đang khởi tạo
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 từ một>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 khác sử dụng lập chỉ mục bảng, thì tùy chọn này cho phép sao chép bảng đó mà không sao chép các chỉ số bằng cách đặt37. Theo mặc định, các chỉ số được sao chép.Table Indexing, then this option allows copying that table without copying the indices by settingdata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
37. By default, the indices are copied.data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
các đơn vị¶
Điều này cho phép đặt thiết bị cho một hoặc nhiều cột tại thời điểm tạo bảng. Đầu vào có thể là danh sách các giá trị đơn vị tương ứng với từng cột trong bảng [sử dụng
13 hoặcdata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
39 không có đơn vị] hoặcdata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3 cung cấp đơn vị cho tên cột được chỉ định. Ví dụ:
8names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Xem số lượng và QTable cho lý do tại sao chúng tôi sử dụng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]5 ở đây thay vì>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4.Quantity and QTable for why we used a>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]5 here instead of a>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4.mô tả và
Điều này cho phép thiết lập mô tả cho một hoặc nhiều cột tại thời điểm tạo bảng. Đầu vào có thể là danh sách các giá trị mô tả tương ứng với từng cột trong bảng [sử dụng
13 không có mô tả] hoặcdata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3 cung cấp mô tả cho tên cột được chỉ định. Điều này hoạt động theo cách tương tự như ví dụ
54 ở trên.names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
Sao chép Versus Reference¶
Thông thường khi một đối tượng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 mới được tạo, dữ liệu đầu vào được sao chép. Điều này đảm bảo rằng nếu các yếu tố bảng mới được sửa đổi thì dữ liệu gốc sẽ không bị ảnh hưởng. Tuy nhiên, khi tạo bảng từ>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]4 hiện có, đối tượng>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 [có cấu trúc hoặc đồng nhất] hoặc
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3, có thể vô hiệu hóa sao chép để sử dụng tham chiếu bộ nhớ đến dữ liệu gốc. Điều này có lợi thế là nhanh hơn và sử dụng ít bộ nhớ hơn. Tuy nhiên, phải thận trọng vì dữ liệu bảng mới và dữ liệu gốc sẽ được liên kết, như được hiển thị bên dưới:
9names values 0 Byakuya 500 1 Kenpachi 600 2 Kon 50
Lưu ý rằng khi tham chiếu dữ liệu, không thể thay đổi các loại dữ liệu vì thao tác đó yêu cầu tạo một bản sao của dữ liệu. Trong trường hợp này xảy ra lỗi:
>>> from astropy.table import QTable, Table, Column >>> from astropy import units as u >>> import numpy as np0Một cảnh báo khác để sử dụng dữ liệu được tham chiếu là nếu bạn thêm một hàng mới vào bảng, tham chiếu đến mảng dữ liệu gốc sẽ bị mất và thay vào đó, bảng sẽ giữ một bản sao của các giá trị gốc [ngoài hàng mới].
Các lớp học và bảng tính bảng tính
Có hai lớp,
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]8 và51, rất hữu ích khi xây dựng các bảng mới.data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Cột¶
Đối tượng
>>> t = QTable[] >>> t['a'] = [1, 4] >>> t['b'] = [2.0, 5.0] * u.cm / u.s >>> t['c'] = ['x', 'y'] >>> type[t['b']]8 có thể được tạo như sau, trong đó trong mọi trường hợp, cột53 nên được cung cấp dưới dạng đối số từ khóa và bạn có thể tùy chọn cung cấp các giá trị sau:data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
00names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
20,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 hoặc
13data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
20,names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 0 or
13data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Giá trị dữ liệu cột.
13names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
25 Giá trị tương thíchdata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
25 compatible valuedata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Kiểu dữ liệu cho cột.
60data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
61data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
61data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Mô tả đầy đủ của cột.
62data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
61data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
61data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Đơn vị vật lý.
64data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
61 hoặc chức năngdata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
61 or functiondata = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Định dạng xác định cho các giá trị cột xuất ra.
39names = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3
>>> Table[[t['c'], t['a']]]c a str1 int32 ---- ----- x 1 y 4 3
Siêu dữ liệu liên quan đến cột.
Tùy chọn khởi tạo
Các giá trị dữ liệu cột, hình dạng và kiểu dữ liệu được chỉ định theo một trong hai cách:
Cung cấp dữ liệu nhưng không có độ dài hoặc hình dạng
Examples:
>>> from astropy.table import QTable, Table, Column >>> from astropy import units as u >>> import numpy as np1Đối số
13 có thể là bất kỳ giá trị nào là trình khởi tạo loại dữ liệu có kích thước cố định được chấp nhận chonames = ["a", "b", "c"] values = [1, 2, 3] for n, v in zip[names, values]: print["{} = {}".format[n, v]]
25. Xem tham chiếu cho các đối tượng kiểu dữ liệu. Những ví dụ bao gồm:data = {'names': names, 'values': values} df = pandas.DataFrame[data=data]
Loại không chuỗi Python [