第二十三天-数据分析入门实战

2024-03-14 22:36

本文主要是介绍第二十三天-数据分析入门实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.常用的数据获取网站

2.分析电信用户流失率

字段说明

1.读取数据

2.数据分析describe

3.数据验证

4.分析目的

1.整体流失情况:人数、比例、流失率

2.性别:人数、比例、流失率

3.老人:人数、比例、流失率

4.是否有配偶:人数、比例、流失率

5.是否经济独立(Yes or No):人数、比例、流失率

6.数据洞察:现象、溯源、建议

 7.优化编写通用方法


1.常用的数据获取网站

2.和鲸:和鲸社区 - Heywhale.com

2.分析电信用户流失率

数据地址:https://www.heywhale.com/mw/project/646f0246bf6378dc90a5233f/dataset

字段说明

字段解释
customerID用户ID
gender性别
SeniorCitizen是否是老年人(1代表是)
Partner是否有配偶(Yes or No)
Dependents是否经济独立(Yes or No)
tenure用户入网时间
PhoneService是否开通电话业务(Yes or No)
MultipleLines是否开通多条电话业务(Yes 、 No or No phoneservice)
InternetService是否开通互联网服务(No、DSL数字网络或filber potic光线网络)
OnlineSecurity是否开通网络安全服务(Yes、No or No internetservice)
OnlineBackup是否开通在线备份服务(Yes、No or No internetservice)
DeviceProtection是否开通设备保护服务(Yes、No or No internetservice)
TechSupport是否开通技术支持业务(Yes、No or No internetservice)
StreamingTV是否开通网络电视(Yes、No or No internetservice)
StreamingMovies是否开通网络电影(Yes、No or No internetservice)
Contract合同签订方式(按月、按年或者两年)
PaperlessBilling是否开通电子账单(Yes or No)
PaymentMethod付款方式(bank transfer、credit card、electronic check、mailed check)
MonthlyCharges月度费用
TotalCharges总费用
Churn是否流失(Yes or No)

1.读取数据

#数据地址:https://www.heywhale.com/mw/project/646f0246bf6378dc90a5233f/dataset
file_name = "WA_Fn-UseC_-Telco-Customer-Churn.csv"
# 读取数据
df = pd.read_csv(file_name)
# 更改列名为中文
df=df.rename(columns={'customerID': '用户ID',"gender":"性别","SeniorCitizen":"是否是老年人(1代表是)","Partner":"是否有配偶(Yes or No)","Dependents":"是否经济独立(Yes or No)","tenure":"用户入网时间","PhoneService":"是否开通电话业务(Yes or No)","MultipleLines":"是否开通多条电话业务(Yes 、 No or No phoneservice)","InternetService":"是否开通互联网服务(No、DSL数字网络或filber potic光线网络)","OnlineSecurity":"是否开通网络安全服务(Yes、No or No internetservice)","OnlineBackup":"是否开通在线备份服务(Yes、No or No internetservice)","DeviceProtection":"是否开通设备保护服务(Yes、No or No internetservice)","TechSupport":"是否开通技术支持业务(Yes、No or No internetservice)","StreamingTV":"是否开通网络电视(Yes、No or No internetservice)","StreamingMovies":"是否开通网络电影(Yes、No or No internetservice)","Contract":"合同签订方式(按月、按年或者两年)","PaperlessBilling":"是否开通电子账单(Yes or No)","PaymentMethod":"付款方式(bank transfer、credit card、electronic check、mailed check)","MonthlyCharges":"月度费用","TotalCharges":"总费用","Churn":"是否流失(Yes or No)"})
print("df.head:", df.head())

out:

df.head:          用户ID      性别  是否是老年人(1代表是)  ...   月度费用      总费用  是否流失(Yes or No)
0  7590-VHVEG  Female             0  ...  29.85    29.85               No
1  5575-GNVDE    Male             0  ...  56.95   1889.5               No
2  3668-QPYBK    Male             0  ...  53.85   108.15              Yes
3  7795-CFOCW    Male             0  ...  42.30  1840.75               No
4  9237-HQITU  Female             0  ...  70.70   151.65              Yes

[5 rows x 21 columns]

2.数据分析describe

describe,默认只识别int,float数值类型的,只会打印出3列数据

print("列类型",df.dtypes)
print("df.describe:", df.describe())

out

列类型 用户ID                                                              object
性别                                                                object
是否是老年人(1代表是)                                                       int64
是否有配偶(Yes or No)                                                  object
是否经济独立(Yes or No)                                                 object
用户入网时间                                                             int64
是否开通电话业务(Yes or No)                                               object
是否开通多条电话业务(Yes 、 No or No phoneservice)                           object
是否开通互联网服务(No、DSL数字网络或filber potic光线网络)                            object
是否开通网络安全服务(Yes、No or No internetservice)                          object
是否开通在线备份服务(Yes、No or No internetservice)                          object
是否开通设备保护服务(Yes、No or No internetservice)                          object
是否开通技术支持业务(Yes、No or No internetservice)                          object
是否开通网络电视(Yes、No or No internetservice)                            object
是否开通网络电影(Yes、No or No internetservice)                            object
合同签订方式(按月、按年或者两年)                                                 object
是否开通电子账单(Yes or No)                                               object
付款方式(bank transfer、credit card、electronic check、mailed check)     object
月度费用                                                             float64
总费用                                                               object
是否流失(Yes or No)                                                   object
dtype: object

df.describe:        是否是老年人(1代表是)       用户入网时间         月度费用
count   7043.000000  7043.000000  7043.000000
mean       0.162147    32.371149    64.761692
std        0.368612    24.559481    30.090047
min        0.000000     0.000000    18.250000
25%        0.000000     9.000000    35.500000
50%        0.000000    29.000000    70.350000
75%        0.000000    55.000000    89.850000
max        1.000000    72.000000   118.750000

查询所有的

print("df.describe:", df.describe(include="all"))

out:

df.describe:               用户ID    性别  是否是老年人(1代表是)  ...         月度费用   总费用  是否流失(Yes or No)
count         7043  7043   7043.000000  ...  7043.000000  7043             7043
unique        7043     2           NaN  ...          NaN  6531                2
top     7590-VHVEG  Male           NaN  ...          NaN                     No
freq             1  3555           NaN  ...          NaN    11             5174
mean           NaN   NaN      0.162147  ...    64.761692   NaN              NaN
std            NaN   NaN      0.368612  ...    30.090047   NaN              NaN
min            NaN   NaN      0.000000  ...    18.250000   NaN              NaN
25%            NaN   NaN      0.000000  ...    35.500000   NaN              NaN
50%            NaN   NaN      0.000000  ...    70.350000   NaN              NaN
75%            NaN   NaN      0.000000  ...    89.850000   NaN              NaN
max            NaN   NaN      1.000000  ...   118.750000   NaN              NaN

3.数据验证

1.验证缺失值

print("验证数据是否有确实值",df.isnull())
#验证数据是否有确实值的个数
print("验证数据是否有确实值",df.isnull().sum())

out

验证数据是否有确实值        用户ID     性别  是否是老年人(1代表是)  ...   月度费用    总费用  是否流失(Yes or No)
0     False  False         False  ...  False  False            False
1     False  False         False  ...  False  False            False
2     False  False         False  ...  False  False            False
3     False  False         False  ...  False  False            False
4     False  False         False  ...  False  False            False
...     ...    ...           ...  ...    ...    ...              ...
7038  False  False         False  ...  False  False            False
7039  False  False         False  ...  False  False            False
7040  False  False         False  ...  False  False            False
7041  False  False         False  ...  False  False            False
7042  False  False         False  ...  False  False            False

[7043 rows x 21 columns]
验证数据是否有确实值 用户ID                                                             0
性别                                                               0
是否是老年人(1代表是)                                                     0
是否有配偶(Yes or No)                                                 0
是否经济独立(Yes or No)                                                0
用户入网时间                                                           0
是否开通电话业务(Yes or No)                                              0
是否开通多条电话业务(Yes 、 No or No phoneservice)                          0
是否开通互联网服务(No、DSL数字网络或filber potic光线网络)                           0
是否开通网络安全服务(Yes、No or No internetservice)                         0
是否开通在线备份服务(Yes、No or No internetservice)                         0
是否开通设备保护服务(Yes、No or No internetservice)                         0
是否开通技术支持业务(Yes、No or No internetservice)                         0
是否开通网络电视(Yes、No or No internetservice)                           0
是否开通网络电影(Yes、No or No internetservice)                           0
合同签订方式(按月、按年或者两年)                                                0
是否开通电子账单(Yes or No)                                              0
付款方式(bank transfer、credit card、electronic check、mailed check)    0
月度费用                                                             0
总费用                                                              0
是否流失(Yes or No)                                                  0
dtype: int64

2. 验证是否有重复值

print("验证是否有重复值",df.duplicated())
print("验证是否有重复值,指定列",df["是否是老年人(1代表是)"].duplicated())

out:

验证是否有重复值 0       False
1       False
2       False
3       False
4       False
        ...  
7038    False
7039    False
7040    False
7041    False
7042    False
Length: 7043, dtype: bool
验证是否有重复值,指定列 0       False
1        True
2        True
3        True
4        True
        ...  
7038     True
7039     True
7040     True
7041     True
7042     True
Name: 是否是老年人(1代表是), Length: 7043, dtype: bool

4.分析目的

1.整体流失情况:人数、比例、流失率

print(df["是否流失(Yes or No)"].drop_duplicates())
liushi1=df[df["是否流失(Yes or No)"]=="Yes"]["是否流失(Yes or No)"].count()
liushi0=df[df["是否流失(Yes or No)"]=="No"]["是否流失(Yes or No)"].count()

out:

流失人数: 1869
未流失人数: 5174
流失率: 0.2653698707936959

2.性别:人数、比例、流失率

#只过滤流失率的数据
liushi1_data=df[df["是否流失(Yes or No)"]=="Yes"]
#性别:人数、比例、流失率
print(df["性别"].drop_duplicates())
xingbNan=df[df["性别"]=="Male"]["性别"].count()
xingbNv=df[df["性别"]=="Female"]["性别"].count()#男性流失率: 男性流失人数/男性人数
liushiNan=len(liushi1_data[liushi1_data["性别"]=="Male"])/xingbNan
print("男性流失人数:",liushiNan)
liushiNv=len(liushi1_data[liushi1_data["性别"]=="Female"])/xingbNv
print("女性流失人数:",liushiNv)

out:

0    Female
1      Male
Name: 性别, dtype: object
男性流失人数: 0.2616033755274262
女性流失人数: 0.26920871559633025

3.老人:人数、比例、流失率

#老人:人数、比例、流失率
print(df["是否是老年人(1代表是)"].drop_duplicates())
laonr0=len(df[df["是否是老年人(1代表是)"]==0])
laonr1=len(df[df["是否是老年人(1代表是)"]==1])
print("非老年人人数:",laonr0)
print("老年人人数:",laonr1)
#计算流失率:老年人流失人数/ 老年人人数liushiLaonr0=len(liushi1_data[liushi1_data["是否是老年人(1代表是)"]==0])/laonr0
print("非老年流失人数:",liushiLaonr0)
liushiLaonr1=len(liushi1_data[liushi1_data["是否是老年人(1代表是)"]==1])/laonr1
print("老年人流失人数:",liushiLaonr1)

out:

0     0
20    1
Name: 是否是老年人(1代表是), dtype: int64
非老年人人数: 5901
老年人人数: 1142
非老年流失人数: 0.23606168446026096
老年人流失人数: 0.4168126094570928

4.是否有配偶:人数、比例、流失率

# 是否有配偶:人数、比例、流失率
print(df["是否有配偶(Yes or No)"].drop_duplicates())
peio0 = len(df[df["是否有配偶(Yes or No)"] == "No"])
peio1 = len(df[df["是否有配偶(Yes or No)"] == "Yes"])
print("无配偶人数:", peio0)
print("有配偶人数:", peio1)# 计算流失率:无配偶流失人数/ 无配偶人数
liushiPeio0 = len(liushi1_data[liushi1_data["是否有配偶(Yes or No)"] == "No"]) / peio0
print("无配偶流失率:", liushiPeio0)
liushiPeio1 = len(liushi1_data[liushi1_data["是否有配偶(Yes or No)"] == "Yes"]) / peio1
print("有配偶流失率:", liushiPeio1)

out:

0    Yes
1     No
Name: 是否有配偶(Yes or No), dtype: object
无配偶人数: 3641
有配偶人数: 3402
无配偶流失率: 0.32957978577313923
有配偶流失率: 0.1966490299823633

5.是否经济独立(Yes or No):人数、比例、流失率

#是否经济独立(Yes or No):人数、比例、流失率
print(df["是否经济独立(Yes or No)"].drop_duplicates())
jingjdl0 = len(df[df["是否经济独立(Yes or No)"] == "No"])
jingjdl1 = len(df[df["是否经济独立(Yes or No)"] == "Yes"])
print("非经济独立人数:", jingjdl0)
print("经济独立人数:", jingjdl1)# 计算流失率:非经济独立流失人数 / 非经济独立人数
liushiJingjdl0 = len(liushi1_data[liushi1_data["是否经济独立(Yes or No)"] == "No"]) / jingjdl0
print("非经济独立流失率:", liushiJingjdl0)
liushiJingjdl1 = len(liushi1_data[liushi1_data["是否经济独立(Yes or No)"] == "Yes"]) / jingjdl1
print("经济独立流失率:", liushiJingjdl1)

out:

0     No
6    Yes
Name: 是否经济独立(Yes or No), dtype: object
非经济独立人数: 4933
经济独立人数: 2110
非经济独立流失率: 0.3127914048246503
经济独立流失率: 0.15450236966824646

6.数据洞察:现象、溯源、建议

1.性别:

男性流失人数: 0.2616033755274262
女性流失人数: 0.26920871559633025

无特殊性

2.是否老年人

非老年流失人数: 0.23606168446026096
老年人流失人数: 0.4168126094570928

老年人相对于非老年人,更容易流失

3.是否有配偶

无配偶流失率: 0.32957978577313923
有配偶流失率: 0.1966490299823633

单身用户更容易流失

4.经济独立

非经济独立流失率: 0.3127914048246503
经济独立流失率: 0.15450236966824646

非经济独立用户更容易流失

 7.优化编写通用方法

1. 编写通用方法,用于计算列类型为分类的

2.下面计算用户产品属性的分析

def calc_cate(col, types):"""计算列类型,为多个分类的数据,计算:人数、比例、流失率:param col: 列名:param types:  分类,数组类型:return:"""print("***********************计算开始{}*******************************".format(col))print("计算列:{},分类:{}".format(col, types.values))for type in types:# 计算分类下的总人数zongrs = len(df[df[col] == type])print("【{}】的下【{}】,总人数为:{}".format( col, type, zongrs))#计算流失人数 分类下流失人数/ 该分类下人数liusrs= len(liushi1_data[liushi1_data[col] ==type])liuslv=liusrs/zongrsprint("【{}】的下【{}】,总人数为:{},流失率{}".format(col, type, liusrs,liuslv))print("***********************计算结束{}*******************************".format(col))# 计算用户属性
# "MultipleLines": "是否开通多条电话业务(Yes 、 No or No phoneservice)",
#                        "InternetService": "是否开通互联网服务(No、DSL数字网络或filber potic光线网络)",
#                        "OnlineSecurity": "是否开通网络安全服务(Yes、No or No internetservice)",
#                        "OnlineBackup": "是否开通在线备份服务(Yes、No or No internetservice)",
#                        "DeviceProtection": "是否开通设备保护服务(Yes、No or No internetservice)",
#                        "TechSupport": "是否开通技术支持业务(Yes、No or No internetservice)",
#                        "StreamingTV": "是否开通网络电视(Yes、No or No internetservice)",
#                        "StreamingMovies": "是否开通网络电影(Yes、No or No internetservice)",
yonghusxCol = ["是否开通电话业务(Yes or No)","是否开通多条电话业务(Yes 、 No or No phoneservice)","是否开通互联网服务(No、DSL数字网络或filber potic光线网络)","是否开通在线备份服务(Yes、No or No internetservice)","是否开通设备保护服务(Yes、No or No internetservice)","是否开通技术支持业务(Yes、No or No internetservice)","是否开通网络电视(Yes、No or No internetservice)","是否开通网络电影(Yes、No or No internetservice)"]for col in yonghusxCol:calc_cate(col, df[col].drop_duplicates())

out

***********************计算开始是否开通电话业务(Yes or No)*******************************
计算列:是否开通电话业务(Yes or No),分类:['No' 'Yes']
【是否开通电话业务(Yes or No)】的下【No】,总人数为:682
【是否开通电话业务(Yes or No)】的下【No】,总人数为:170,流失率0.24926686217008798
【是否开通电话业务(Yes or No)】的下【Yes】,总人数为:6361
【是否开通电话业务(Yes or No)】的下【Yes】,总人数为:1699,流失率0.2670963684955196
***********************计算结束是否开通电话业务(Yes or No)*******************************
***********************计算开始是否开通多条电话业务(Yes 、 No or No phoneservice)*******************************
计算列:是否开通多条电话业务(Yes 、 No or No phoneservice),分类:['No phone service' 'No' 'Yes']
【是否开通多条电话业务(Yes 、 No or No phoneservice)】的下【No phone service】,总人数为:682
【是否开通多条电话业务(Yes 、 No or No phoneservice)】的下【No phone service】,总人数为:170,流失率0.24926686217008798
【是否开通多条电话业务(Yes 、 No or No phoneservice)】的下【No】,总人数为:3390
【是否开通多条电话业务(Yes 、 No or No phoneservice)】的下【No】,总人数为:849,流失率0.2504424778761062
【是否开通多条电话业务(Yes 、 No or No phoneservice)】的下【Yes】,总人数为:2971
【是否开通多条电话业务(Yes 、 No or No phoneservice)】的下【Yes】,总人数为:850,流失率0.286098956580276
***********************计算结束是否开通多条电话业务(Yes 、 No or No phoneservice)*******************************
***********************计算开始是否开通互联网服务(No、DSL数字网络或filber potic光线网络)*******************************
计算列:是否开通互联网服务(No、DSL数字网络或filber potic光线网络),分类:['DSL' 'Fiber optic' 'No']
【是否开通互联网服务(No、DSL数字网络或filber potic光线网络)】的下【DSL】,总人数为:2421
【是否开通互联网服务(No、DSL数字网络或filber potic光线网络)】的下【DSL】,总人数为:459,流失率0.1895910780669145
【是否开通互联网服务(No、DSL数字网络或filber potic光线网络)】的下【Fiber optic】,总人数为:3096
【是否开通互联网服务(No、DSL数字网络或filber potic光线网络)】的下【Fiber optic】,总人数为:1297,流失率0.4189276485788114
【是否开通互联网服务(No、DSL数字网络或filber potic光线网络)】的下【No】,总人数为:1526
【是否开通互联网服务(No、DSL数字网络或filber potic光线网络)】的下【No】,总人数为:113,流失率0.07404980340760157
***********************计算结束是否开通互联网服务(No、DSL数字网络或filber potic光线网络)*******************************
***********************计算开始是否开通在线备份服务(Yes、No or No internetservice)*******************************
计算列:是否开通在线备份服务(Yes、No or No internetservice),分类:['Yes' 'No' 'No internet service']
【是否开通在线备份服务(Yes、No or No internetservice)】的下【Yes】,总人数为:2429
【是否开通在线备份服务(Yes、No or No internetservice)】的下【Yes】,总人数为:523,流失率0.21531494442157267
【是否开通在线备份服务(Yes、No or No internetservice)】的下【No】,总人数为:3088
【是否开通在线备份服务(Yes、No or No internetservice)】的下【No】,总人数为:1233,流失率0.39928756476683935
【是否开通在线备份服务(Yes、No or No internetservice)】的下【No internet service】,总人数为:1526
【是否开通在线备份服务(Yes、No or No internetservice)】的下【No internet service】,总人数为:113,流失率0.07404980340760157
***********************计算结束是否开通在线备份服务(Yes、No or No internetservice)*******************************
***********************计算开始是否开通设备保护服务(Yes、No or No internetservice)*******************************
计算列:是否开通设备保护服务(Yes、No or No internetservice),分类:['No' 'Yes' 'No internet service']
【是否开通设备保护服务(Yes、No or No internetservice)】的下【No】,总人数为:3095
【是否开通设备保护服务(Yes、No or No internetservice)】的下【No】,总人数为:1211,流失率0.3912762520193861
【是否开通设备保护服务(Yes、No or No internetservice)】的下【Yes】,总人数为:2422
【是否开通设备保护服务(Yes、No or No internetservice)】的下【Yes】,总人数为:545,流失率0.2250206440957886
【是否开通设备保护服务(Yes、No or No internetservice)】的下【No internet service】,总人数为:1526
【是否开通设备保护服务(Yes、No or No internetservice)】的下【No internet service】,总人数为:113,流失率0.07404980340760157
***********************计算结束是否开通设备保护服务(Yes、No or No internetservice)*******************************
***********************计算开始是否开通技术支持业务(Yes、No or No internetservice)*******************************
计算列:是否开通技术支持业务(Yes、No or No internetservice),分类:['No' 'Yes' 'No internet service']
【是否开通技术支持业务(Yes、No or No internetservice)】的下【No】,总人数为:3473
【是否开通技术支持业务(Yes、No or No internetservice)】的下【No】,总人数为:1446,流失率0.4163547365390153
【是否开通技术支持业务(Yes、No or No internetservice)】的下【Yes】,总人数为:2044
【是否开通技术支持业务(Yes、No or No internetservice)】的下【Yes】,总人数为:310,流失率0.15166340508806261
【是否开通技术支持业务(Yes、No or No internetservice)】的下【No internet service】,总人数为:1526
【是否开通技术支持业务(Yes、No or No internetservice)】的下【No internet service】,总人数为:113,流失率0.07404980340760157
***********************计算结束是否开通技术支持业务(Yes、No or No internetservice)*******************************
***********************计算开始是否开通网络电视(Yes、No or No internetservice)*******************************
计算列:是否开通网络电视(Yes、No or No internetservice),分类:['No' 'Yes' 'No internet service']
【是否开通网络电视(Yes、No or No internetservice)】的下【No】,总人数为:2810
【是否开通网络电视(Yes、No or No internetservice)】的下【No】,总人数为:942,流失率0.33523131672597867
【是否开通网络电视(Yes、No or No internetservice)】的下【Yes】,总人数为:2707
【是否开通网络电视(Yes、No or No internetservice)】的下【Yes】,总人数为:814,流失率0.30070188400443293
【是否开通网络电视(Yes、No or No internetservice)】的下【No internet service】,总人数为:1526
【是否开通网络电视(Yes、No or No internetservice)】的下【No internet service】,总人数为:113,流失率0.07404980340760157
***********************计算结束是否开通网络电视(Yes、No or No internetservice)*******************************
***********************计算开始是否开通网络电影(Yes、No or No internetservice)*******************************
计算列:是否开通网络电影(Yes、No or No internetservice),分类:['No' 'Yes' 'No internet service']
【是否开通网络电影(Yes、No or No internetservice)】的下【No】,总人数为:2785
【是否开通网络电影(Yes、No or No internetservice)】的下【No】,总人数为:938,流失率0.33680430879712747
【是否开通网络电影(Yes、No or No internetservice)】的下【Yes】,总人数为:2732
【是否开通网络电影(Yes、No or No internetservice)】的下【Yes】,总人数为:818,流失率0.29941434846266474
【是否开通网络电影(Yes、No or No internetservice)】的下【No internet service】,总人数为:1526
【是否开通网络电影(Yes、No or No internetservice)】的下【No internet service】,总人数为:113,流失率0.07404980340760157
***********************计算结束是否开通网络电影(Yes、No or No internetservice)*******************************

这篇关于第二十三天-数据分析入门实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/809930

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就