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.6 Trả vềd = df[CONT].count[].to_dict[] print d {'age': 3, 'fnlwgt': 3} print d['age'] 3 print d['fnlwgt'] 3
7d = df[CONT].count[].to_dict[] print d {'age': 3, 'fnlwgt': 3} print d['age'] 3 print d['fnlwgt'] 3
6 returnsd = df[CONT].count[].to_dict[] print d {'age': 3, 'fnlwgt': 3} print d['age'] 3 print d['fnlwgt'] 3
7d = df[CONT].count[].to_dict[] print d {'age': 3, 'fnlwgt': 3} print d['age'] 3 print d['fnlwgt'] 3
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
4 và d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
9.d = df[CONT].count[].to_dict[]
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
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
0for 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['']
1Cá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
1Bằ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