Hướng dẫn python use column name as variable - python sử dụng tên cột làm biến

Tôi có một khung dữ liệu chứa 13 tên cột khác nhau, tôi đã tách các tiêu đề này thành hai danh sách. Bây giờ tôi muốn thực hiện các hoạt động khác nhau trên mỗi danh sách này.

Có thể chuyển tên cột vào gấu trúc như một biến? Mã của tôi tại thời điểm này có thể lặp qua danh sách tốt nhưng tôi gặp khó khăn khi cố gắng chuyển tên cột vào chức năng

Mã số

CONT = ['age','fnlwgt','capital-gain','capital-loss']
#loops through columns
for column_name, column in df.transpose[].iterrows[]:
    if column_name in CONT:
        X = column_name
        print[df.X.count[]]
    else:
        print['']

Scott Boston

Huy hiệu vàng 139K1414 gold badges133 silver badges171 bronze badges

Khi được hỏi ngày 8 tháng 2 năm 2016 lúc 20:28Feb 8, 2016 at 20:28

Tôi nghĩ rằng bạn có thể sử dụng

print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
3 được tạo từ
print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
4
print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
5:

print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3

Có thể tốt hơn vì

print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
4 là
print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
7, được tạo ra bởi
print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
8:

d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3

Đã trả lời ngày 8 tháng 2 năm 2016 lúc 20:40Feb 8, 2016 at 20:40

JEZRAELJEZRAELjezrael

768K85 Huy hiệu vàng1224 Huy hiệu bạc1160 Huy hiệu đồng85 gold badges1224 silver badges1160 bronze badges

try:

for column_name, column in df.transpose[].iterrows[]: 
    if column_name in CONT:
        print[df[column_name].count[]] 
    else: 
        print['']

edit:

Để trả lời câu hỏi của bạn chính xác hơn: Bạn có thể sử dụng các biến để chọn COLS theo 2 cách:

print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
9 sẽ trả về DataFrame với tập hợp con của COL trong
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
0.
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
1 sẽ trả lại loạt cho
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
2

Đã trả lời ngày 8 tháng 2 năm 2016 lúc 20:31Feb 8, 2016 at 20:31

Aiguoferaiguoferaiguofer

1.62119 huy hiệu bạc31 huy hiệu đồng19 silver badges31 bronze badges

4

Sau đây sẽ in số lượng của từng cột trong DataFrame nếu đó là một tập hợp con của danh sách cont của bạn.

CONT = ['age', 'fnlwgt', 'capital-gain', 'capital-loss']
df = pd.DataFrame[np.random.rand[5, 2], columns=CONT[:2]]

>>> df
        age    fnlwgt
0  0.079796  0.736956
1  0.120187  0.778335
2  0.698782  0.691850
3  0.421074  0.369500
4  0.125983  0.454247

Chọn tập hợp con của các cột và thực hiện biến đổi.

>>> df[[c for c in CONT if c in df]].count[]
age       5
fnlwgt    5
dtype: int64

Đã trả lời ngày 8 tháng 2 năm 2016 lúc 20:50Feb 8, 2016 at 20:50

AlexanderalexanderAlexander

Huy hiệu vàng 100K2828 gold badges190 silver badges186 bronze badges

Giả sử bạn muốn tham chiếu một biến trong một truy vấn trong gói Pandas trong Python. Đây dường như là một nhiệm vụ đơn giản nhưng đôi khi nó trở nên khó khăn. Hãy thảo luận về nó với các ví dụ trong bài viết dưới đây.

Hãy tạo một DataFrame mẫu có 3 cột và 4 hàng. Khung dữ liệu này được sử dụng cho mục đích trình diễn.

import pandas as pd
df = pd.DataFrame[{"col1" : range[1,5], 
                   "col2" : ['A A','B B','A A','B B'],
                   "col3" : ['A A','A A','B B','B B']
                   }]

Lọc một giá trị

d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
3 trong cột
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
4

Để thực hiện tham chiếu của một biến trong truy vấn, bạn cần sử dụng

d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
5.

Đề cập đến giá trị rõ ràng

newdf = df.query["col2 == 'A A'"]

Phương pháp tham chiếu

myval1 = 'A A'
newdf = df.query["col2 == @myval1"]

Cách chuyển tên cột như một biến trong truy vấn

Thay vì giá trị bộ lọc, chúng tôi đang giới thiệu cột mà chúng tôi muốn sử dụng để phân nhóm hoặc lọc.

myvar1 = 'col2'
newdf2 = df.query["{0} == 'A A'".format[myvar1]]
{0} lấy giá trị của biến MYVAR1.
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
6 Trả về
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
7
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
6 returns
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
7

Trong trường hợp bạn muốn vượt qua nhiều cột dưới dạng các biến trong truy vấn. Ở đây chúng tôi đang sử dụng các cột

d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
4 và
d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
9.

print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
0

for column_name, column in df.transpose[].iterrows[]: 
    if column_name in CONT:
        print[df[column_name].count[]] 
    else: 
        print['']
0 tương đương với
for column_name, column in df.transpose[].iterrows[]: 
    if column_name in CONT:
        print[df[column_name].count[]] 
    else: 
        print['']
1

Cách xử lý không gian trong tên cột

Hãy đổi tên cột

d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
4 bằng cách bao gồm một khoảng trống ở giữa cho mục đích minh họa.

print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
1

Bằng cách sử dụng Backticks

for column_name, column in df.transpose[].iterrows[]: 
    if column_name in CONT:
        print[df[column_name].count[]] 
    else: 
        print['']
3, bạn có thể vượt qua một cột có chứa không gian.

print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count[]
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3
2

Về tác giả:

Deepanshu thành lập Listendata với mục tiêu đơn giản - giúp phân tích dễ hiểu và làm theo. Ông có hơn 10 năm kinh nghiệm về khoa học dữ liệu. Trong nhiệm kỳ của mình, ông đã làm việc với các khách hàng toàn cầu trong các lĩnh vực khác nhau như ngân hàng, bảo hiểm, vốn cổ phần tư nhân, viễn thông và nguồn nhân lực.

Tiếp theo → ← Prev

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

Tạo một dữ liệu dạng bảng hai chiều, có kích thước, có khả năng không đồng nhất, DF ..
In DataFrame đầu vào, DF ..
Khởi tạo biến chỉ mục ..
Khởi tạo biến Col ..
Nhận giá trị ô tương ứng với biến chỉ mục và col ..
In giá trị ô ..

Làm thế nào để bạn gán một cột cho một tên trong Python?

Để đổi tên các cột của DataFrame này, chúng ta có thể sử dụng phương thức Đổi tên [] cần:..
Một từ điển là đối số cột chứa ánh xạ của tên cột gốc đến tên cột mới dưới dạng các cặp giá trị khóa ..
Một giá trị boolean là đối số tại chỗ, nếu được đặt thành true sẽ thực hiện các thay đổi trên DataFrame gốc ..

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

Chuyển đổi cột thành int [số nguyên] Sử dụng gấu trúc DataFrame.hàm asttype [] Để chuyển đổi cột sang int [số nguyên], 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ộ khung dữ liệu.Để chuyển loại dữ liệu lên số nguyên đã ký 64 bit, bạn có thể sử dụng Numpy.Int64, Numpy.Use pandas DataFrame. astype[] function to convert column to int [integer], you can apply this on a specific column or on an entire DataFrame. To cast the data type to 64-bit signed integer, you can use numpy. int64 , numpy.

Làm cách nào để nhận tên cột từ một khung dữ liệu trong Python?

Bạn có thể nhận tên cột từ Pandas DataFrame bằng df.columns.values và chuyển chức năng Python Danh sách [] để lấy nó làm danh sách, một khi bạn có dữ liệu bạn có thể in nó bằng câu lệnh PRINT [].using df. columns. values , and pass this to python list[] function to get it as list, once you have the data you can print it using print[] statement.

Bài Viết Liên Quan

Chủ Đề