Sử dụng phần này trong câu trả lời của Rob cho thiết lập:
from json import loads, dumps
from collectins import defaultdict
json_string = """
[
{"name": "xyz", "territory": "abc", "parameter_a": 1, "parameter_b": 2, "parameter_c": 3},
{"name": "qrs", "territory": "def", "parameter_a": 1, "parameter_b": 2, "parameter_c": 3},
{"name": "tuv", "territory": "abc", "parameter_a": 1, "parameter_b": 2, "parameter_c": 3},
{"name": "abc", "territory": "abc", "parameter_a": 1, "parameter_b": 2, "parameter_c": 3}
]"""
# Step 1: convert from JSON to Python:
python_object = loads[json_string]
Bạn có thể tạo một từ điển lãnh thổ và sau đó cập nhật đối tượng của mình:
territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
Những bài viết liên quan
Sum Pandas DataFrame Cột với các ví dụ
DataFrame trống Pandas với các loại cột cụ thể
Chọn các hàng DataFrame Pandas giữa hai ngày
# Below are quick examples
# Using groupby[] and count[]
df2 = df.groupby[['Courses']]['Courses'].count[]
# Using GroupBy & count[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].count[]
# Using GroupBy & size[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].size[]
# using DataFrame.size[] and max[]
df2 = df.groupby[['Courses','Duration']].size[].groupby[level=0].max[]
# Use size[].reset_index[] method
df2 = df.groupby[['Courses','Duration']].size[].reset_index[name='counts']
# Using pandas DataFrame.reset_index[]
df2 = df.groupby[['Courses','Duration']]['Fee'].agg['count'].reset_index[]
# Using DataFrame.transform[]
df2 = df.groupby[['Courses','Duration']].Courses.transform['count']
# Use DataFrame.groupby[] and Size[]
print[df.groupby[['Discount','Duration']].size[]
.sort_values[ascending=False]
.reset_index[name='count']
.drop_duplicates[subset='Duration']]
Pandas chuyển đổi nhiều cột thành loại DateTime
# Create a pandas DataFrame.
import pandas as pd
technologies = [{
'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark","Python"],
'Fee' :[22000,25000,23000,24000,26000,25000,25000,22000],
'Duration':['30days','50days','35days','40days','60days','35days','55days','50days'],
'Discount':[1000,2300,1000,1200,2500,1300,1400,1600]
}]
df = pd.DataFrame[technologies, columns=['Courses','Fee','Duration','Discount']]
print[df]
Năng suất dưới đầu ra.
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 35days 1000
3 Python 24000 40days 1200
4 Pandas 26000 60days 2500
5 Hadoop 25000 35days 1300
6 Spark 25000 55days 1400
7 Python 22000 50days 1600
Đổi tên các giá trị chỉ mục của Pandas DataFrame
Người giới thiệu
# Using groupby[] and count[]
df2 = df.groupby[['Courses']]['Courses'].count[]
print[df2]
Năng suất dưới đầu ra.
Courses
Hadoop 2
Pandas 1
PySpark 1
Python 2
Spark 2
Name: Courses, dtype: int64
Bạn có thể sử dụng gandas dataFrame.groupBy []. Count [] cho các cột nhóm và tính toán tổng hợp đếm hoặc kích thước, điều này & nbsp; tính toán số lượng hàng cho mỗi kết hợp nhóm.
Bạn cũng có thể gửi một danh sách các cột bạn muốn nhóm đến GroupBy [], sử dụng điều này, bạn có thể áp dụng một nhóm trên nhiều cột và tính toán số lượng trên mỗi nhóm kết hợp. Ví dụ: & nbsp; ________ 30 & nbsp; không nhóm trên & nbsp; ________ 24 & nbsp; và & nbsp; ____ ____ 26 & nbsp; cột và cuối cùng tính toán số lượng.
# Using groupby[] & count[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].count[]
print[df2]
Năng suất dưới đầu ra.
Courses Duration
Hadoop 35days 2
Pandas 60days 1
PySpark 50days 1
Python 40days 1
50days 1
Spark 30days 1
55days 1
Name: Fee, dtype: int64
4. Sắp xếp sau nhóm và đếm
Đôi khi bạn sẽ được yêu cầu thực hiện một loại [giảm dần hoặc giảm dần] sau khi thực hiện nhóm và đếm. Bạn có thể đạt được điều này bằng cách sử dụng ví dụ dưới đây.
Lưu ý rằng theo mặc định theo nhóm theo kết quả theo các loại theo khóa nhóm do đó sẽ mất thêm thời gian, nếu bạn có vấn đề về hiệu suất và không muốn sắp xếp nhóm theo kết quả, bạn có thể tắt điều này bằng cách sử dụng param
# Create a pandas DataFrame.
import pandas as pd
technologies = [{
'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark","Python"],
'Fee' :[22000,25000,23000,24000,26000,25000,25000,22000],
'Duration':['30days','50days','35days','40days','60days','35days','55days','50days'],
'Discount':[1000,2300,1000,1200,2500,1300,1400,1600]
}]
df = pd.DataFrame[technologies, columns=['Courses','Fee','Duration','Discount']]
print[df]
3.
# Sorting after groupby[] & count[]
# Sorting group keys on descending order
groupedDF = df.groupby['Courses',sort=False].count[]
sortedDF=groupedDF.sort_values['Courses', ascending=False]['Fee']
print[sortedDF]
Năng suất dưới đầu ra.
territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
05. Sử dụng groupby [] với kích thước []
Ngoài ra, bạn cũng có thể sử dụng kích thước [] để có được số lượng hàng cho mỗi nhóm. Bạn có thể sử dụng
# Create a pandas DataFrame.
import pandas as pd
technologies = [{
'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark","Python"],
'Fee' :[22000,25000,23000,24000,26000,25000,25000,22000],
'Duration':['30days','50days','35days','40days','60days','35days','55days','50days'],
'Discount':[1000,2300,1000,1200,2500,1300,1400,1600]
}]
df = pd.DataFrame[technologies, columns=['Courses','Fee','Duration','Discount']]
print[df]
4 để có tổng số phần tử cho mỗi nhóm
# Below are quick examples
# Using groupby[] and count[]
df2 = df.groupby[['Courses']]['Courses'].count[]
# Using GroupBy & count[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].count[]
# Using GroupBy & size[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].size[]
# using DataFrame.size[] and max[]
df2 = df.groupby[['Courses','Duration']].size[].groupby[level=0].max[]
# Use size[].reset_index[] method
df2 = df.groupby[['Courses','Duration']].size[].reset_index[name='counts']
# Using pandas DataFrame.reset_index[]
df2 = df.groupby[['Courses','Duration']]['Fee'].agg['count'].reset_index[]
# Using DataFrame.transform[]
df2 = df.groupby[['Courses','Duration']].Courses.transform['count']
# Use DataFrame.groupby[] and Size[]
print[df.groupby[['Discount','Duration']].size[]
.sort_values[ascending=False]
.reset_index[name='count']
.drop_duplicates[subset='Duration']]
4 và
# Below are quick examples
# Using groupby[] and count[]
df2 = df.groupby[['Courses']]['Courses'].count[]
# Using GroupBy & count[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].count[]
# Using GroupBy & size[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].size[]
# using DataFrame.size[] and max[]
df2 = df.groupby[['Courses','Duration']].size[].groupby[level=0].max[]
# Use size[].reset_index[] method
df2 = df.groupby[['Courses','Duration']].size[].reset_index[name='counts']
# Using pandas DataFrame.reset_index[]
df2 = df.groupby[['Courses','Duration']]['Fee'].agg['count'].reset_index[]
# Using DataFrame.transform[]
df2 = df.groupby[['Courses','Duration']].Courses.transform['count']
# Use DataFrame.groupby[] and Size[]
print[df.groupby[['Discount','Duration']].size[]
.sort_values[ascending=False]
.reset_index[name='count']
.drop_duplicates[subset='Duration']]
6. cộtterritories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
1Mang lại đầu ra giống như trên.
Sử dụng
# Create a pandas DataFrame.
import pandas as pd
technologies = [{
'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark","Python"],
'Fee' :[22000,25000,23000,24000,26000,25000,25000,22000],
'Duration':['30days','50days','35days','40days','60days','35days','55days','50days'],
'Discount':[1000,2300,1000,1200,2500,1300,1400,1600]
}]
df = pd.DataFrame[technologies, columns=['Courses','Fee','Duration','Discount']]
print[df]
7 để chỉ định mức nào bạn muốn làm đầu ra. Lưu ý rằng cấp độ bắt đầu từ 0.territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
2Năng suất dưới đầu ra.
territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
3Sau đó sử dụng ____38 để gán tên cho cột đếm.
territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
4Năng suất dưới đầu ra.
territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
56. Pandas Groupby [] và sử dụng AGG [‘Đếm,]
Ngoài ra, bạn cũng có thể nhận được số lượng nhóm bằng cách sử dụng hàm
# Create a pandas DataFrame.
import pandas as pd
technologies = [{
'Courses':["Spark","PySpark","Hadoop","Python","Pandas","Hadoop","Spark","Python"],
'Fee' :[22000,25000,23000,24000,26000,25000,25000,22000],
'Duration':['30days','50days','35days','40days','60days','35days','55days','50days'],
'Discount':[1000,2300,1000,1200,2500,1300,1400,1600]
}]
df = pd.DataFrame[technologies, columns=['Courses','Fee','Duration','Discount']]
print[df]
9 hoặc tổng hợp [] và chuyển hàm đếm tổng hợp dưới dạng param. Hàm reset_index [] được sử dụng để đặt chỉ mục trên dataFrame. Bằng cách sử dụng phương pháp này, bạn có thể tính toán nhiều tập hợp.territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
6Năng suất dưới đầu ra.
territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
77. Sử dụng dataFrame.transform []
Bạn có thể sử dụng
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 35days 1000
3 Python 24000 40days 1200
4 Pandas 26000 60days 2500
5 Hadoop 25000 35days 1300
6 Spark 25000 55days 1400
7 Python 22000 50days 1600
0 để thêm một cột mới chứa các nhóm
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 35days 1000
3 Python 24000 40days 1200
4 Pandas 26000 60days 2500
5 Hadoop 25000 35days 1300
6 Spark 25000 55days 1400
7 Python 22000 50days 1600
1 vào DataFrame.territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
8Năng suất dưới đầu ra.
territories = defaultdict[list]
for i, item in enumerate[python_object]:
territories[item['territory']].append[i]
for item in python_object:
item['parameter_d'] = territories[item['territory']]
print[dumps[python_object, indent=2]]
98. Các ví dụ khác
Bây giờ, hãy để Lừa xem cách sắp xếp các hàng từ kết quả của Groupby và thả các hàng trùng lặp từ Pandas DataFrame.
# Below are quick examples
# Using groupby[] and count[]
df2 = df.groupby[['Courses']]['Courses'].count[]
# Using GroupBy & count[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].count[]
# Using GroupBy & size[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].size[]
# using DataFrame.size[] and max[]
df2 = df.groupby[['Courses','Duration']].size[].groupby[level=0].max[]
# Use size[].reset_index[] method
df2 = df.groupby[['Courses','Duration']].size[].reset_index[name='counts']
# Using pandas DataFrame.reset_index[]
df2 = df.groupby[['Courses','Duration']]['Fee'].agg['count'].reset_index[]
# Using DataFrame.transform[]
df2 = df.groupby[['Courses','Duration']].Courses.transform['count']
# Use DataFrame.groupby[] and Size[]
print[df.groupby[['Discount','Duration']].size[]
.sort_values[ascending=False]
.reset_index[name='count']
.drop_duplicates[subset='Duration']]
0Năng suất dưới đầu ra.
# Below are quick examples
# Using groupby[] and count[]
df2 = df.groupby[['Courses']]['Courses'].count[]
# Using GroupBy & count[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].count[]
# Using GroupBy & size[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].size[]
# using DataFrame.size[] and max[]
df2 = df.groupby[['Courses','Duration']].size[].groupby[level=0].max[]
# Use size[].reset_index[] method
df2 = df.groupby[['Courses','Duration']].size[].reset_index[name='counts']
# Using pandas DataFrame.reset_index[]
df2 = df.groupby[['Courses','Duration']]['Fee'].agg['count'].reset_index[]
# Using DataFrame.transform[]
df2 = df.groupby[['Courses','Duration']].Courses.transform['count']
# Use DataFrame.groupby[] and Size[]
print[df.groupby[['Discount','Duration']].size[]
.sort_values[ascending=False]
.reset_index[name='count']
.drop_duplicates[subset='Duration']]
19. Ví dụ hoàn chỉnh về nhóm và đếm
# Below are quick examples
# Using groupby[] and count[]
df2 = df.groupby[['Courses']]['Courses'].count[]
# Using GroupBy & count[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].count[]
# Using GroupBy & size[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].size[]
# using DataFrame.size[] and max[]
df2 = df.groupby[['Courses','Duration']].size[].groupby[level=0].max[]
# Use size[].reset_index[] method
df2 = df.groupby[['Courses','Duration']].size[].reset_index[name='counts']
# Using pandas DataFrame.reset_index[]
df2 = df.groupby[['Courses','Duration']]['Fee'].agg['count'].reset_index[]
# Using DataFrame.transform[]
df2 = df.groupby[['Courses','Duration']].Courses.transform['count']
# Use DataFrame.groupby[] and Size[]
print[df.groupby[['Discount','Duration']].size[]
.sort_values[ascending=False]
.reset_index[name='count']
.drop_duplicates[subset='Duration']]
2Sự kết luận
Trong bài viết này, bạn đã học được cách nhóm đơn và nhiều cột và nhận số lượng các hàng từ gấu trúc DataFrame bằng DataFrame.groupby [],
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 35days 1000
3 Python 24000 40days 1200
4 Pandas 26000 60days 2500
5 Hadoop 25000 35days 1300
6 Spark 25000 55days 1400
7 Python 22000 50days 1600
2,
# Below are quick examples
# Using groupby[] and count[]
df2 = df.groupby[['Courses']]['Courses'].count[]
# Using GroupBy & count[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].count[]
# Using GroupBy & size[] on multiple column
df2 = df.groupby[['Courses','Duration']]['Fee'].size[]
# using DataFrame.size[] and max[]
df2 = df.groupby[['Courses','Duration']].size[].groupby[level=0].max[]
# Use size[].reset_index[] method
df2 = df.groupby[['Courses','Duration']].size[].reset_index[name='counts']
# Using pandas DataFrame.reset_index[]
df2 = df.groupby[['Courses','Duration']]['Fee'].agg['count'].reset_index[]
# Using DataFrame.transform[]
df2 = df.groupby[['Courses','Duration']].Courses.transform['count']
# Use DataFrame.groupby[] and Size[]
print[df.groupby[['Discount','Duration']].size[]
.sort_values[ascending=False]
.reset_index[name='count']
.drop_duplicates[subset='Duration']]
8 và
Courses Fee Duration Discount
0 Spark 22000 30days 1000
1 PySpark 25000 50days 2300
2 Hadoop 23000 35days 1000
3 Python 24000 40days 1200
4 Pandas 26000 60days 2500
5 Hadoop 25000 35days 1300
6 Spark 25000 55days 1400
7 Python 22000 50days 1600
4 với các ví dụ.Học hỏi hạnh phúc !!
Những bài viết liên quan
- Sum Pandas DataFrame Cột với các ví dụ
- DataFrame trống Pandas với các loại cột cụ thể
- Chọn các hàng DataFrame Pandas giữa hai ngày
- Pandas chuyển đổi nhiều cột thành loại DateTime
- Đổi tên các giá trị chỉ mục của Pandas DataFrame
Người giới thiệu
- //pandas.pydata.org/docs/reference/api/pandas.core.groupby.GroupBy.mean.html