数据分析python代码——数据填充

在Python中,我们通常使用pandas库来处理和分析数据。数据填充是数据预处理的一个重要步骤,用于处理数据中的缺失值。以下是使用pandas库进行数据填充的示例代码:

在数据分析中,处理缺失值(空值)是一个重要的预处理步骤。缺失值的存在可能导致数据分析结果不准确或产生误导。因此,需要采取适当的策略来填补这些缺失值。以下是几种常见的空值填补办法:

1. 常数填充

将缺失值替换为某个常数,例如0、中位数、均值或者一个特殊的标识值。这种方法的优点是简单快速,但缺点是可能引入偏差,因为填充的常数可能与实际数据分布不符。

 

python复制代码

df['column_name'].fillna(value=0, inplace=True)

2. 均值/中位数/众数填充

根据列的数据类型(数值型或分类型),使用列的均值、中位数或众数来填充缺失值。这种方法适用于数值型数据,可以保持数据的分布特性。

 

python复制代码

df['column_name'].fillna(value=df['column_name'].mean(), inplace=True)

3. 插值填充

对于时间序列数据,可以使用插值方法(如线性插值、多项式插值等)来估计缺失值。这种方法能够考虑到数据随时间的变化趋势。

 

python复制代码

df['column_name'].interpolate(method='linear', inplace=True)

4. 基于模型预测填充

使用机器学习模型(如回归模型、决策树、随机森林等)来预测缺失值。这种方法更加复杂,但可能更准确地估计缺失值,尤其是当缺失值与其他变量存在复杂关系时。

 

python复制代码

from sklearn.impute import IterativeImputer
imputer = IterativeImputer(max_iter=10, random_state=0)
df_filled = imputer.fit_transform(df)

5. 热卡填充(Hot Deck Imputation)

从数据集中随机选择一个非缺失值来替换缺失值。这种方法可以保持数据的分布特性,但可能引入随机性。

6. 多重插补(Multiple Imputation)

创建多个数据集,每个数据集对缺失值进行不同的填充,然后对这些数据集的分析结果进行合并,以考虑由填充缺失值引起的不确定性。

7. 基于相似性的填充

对于分类数据,可以根据其他相似样本的值来填充缺失值。例如,可以使用K近邻算法来找到与缺失值样本最相似的样本,并用这些样本的值来填充缺失值。

注意事项:

  • 在选择填充方法时,应考虑数据的性质、缺失值的比例以及分析的目的。
  • 在填充缺失值后,建议检查数据的分布和统计特性,以确保填充没有引入不合理的偏差。
  • 有时,缺失值可能包含有用的信息(例如,某些缺失值可能表示“不适用”或“未知”),在这种情况下,应谨慎处理,避免不必要的填充。

首先,确保你已经安装了pandas库。如果没有,你可以使用pip来安装:

bash复制代码

pip install pandas

数据例样

x1x2x3x4x5x6x7x8x9x10x11x12x13x14y
122.0811.462441.5850001210012130
022.6772840.1650000216010
029.581.751441.250001228010
021.671530111112011
120.178.172641.96111402601591
00.5852881120211
117.426.52340.12500002601010
058.674.4621183.0411602435611
127.8311283000021765380
055.757.082486.7511312100510
133.51.752148114122538581
141.425211851161247011
120.671.251881.375113121400
34.92521487.511612010011
12.712842.415001232010
148.086.0424400002026911
129.584.52947.51121233011
018.9292640.7511202885921
1201.251440.1250000214050
022.425.66521142.585170212932581
028.170.5852640.04000210050
019.170.5851640.5851001216010
141.171.3352240.1650000216810
141.581.752440.21100216010
19.52640.7900002803510
132.751.521385.511312011
122.50.1251440.12500002200710
133.173.041882.0411112180180281
030.6712284211102220201
123.082.52841.0851111126021851
1270.75288113123121511
020.4210.51148000012154330
152.331.3751889.4610122001010
123.0811.52982.1251111122902851
142.831.2527413.875011123521130
174.83191110.040120203520
125264310012011
139.5813.9152948.625116127011
047.7582847.87511612012611
047.423214413.8751121251917051
123.17021340.0851002011
122.581.51640.5400012120680
126.751.12521481.2510002052991
163.330.542840.5851131218010
123.750.4151840.040120212870
020.7521140.71112124911
024.51.751840.1650000213210
116.170.042840.0400002011
029.521108200002256180
052.83152845.5111402022011
132.333.52440.50001223210
121.084.1251380.0400021401010
128.170.1251440.0850000221621010
1191.751842.3350001211270
127.583.251185.0850121220
127.831.52942111112434361
16.52653.51110205011
037.332.52380.21000022600
142.54.9151943.16510125214431
156.7512.252741.251141220011
143.1752352.250001214110
023.750.712940.250111224050
118.522341.5112021203011
040.833.52350.500001116010
024.50.521181.5100022808251
1429.7921487.9611802011
019.50.16521140.040001238010
121.511.52340.510012100690
131.252.8352110015021761470
27.251.58521381.8351112125837141
148.7526.335111010012010
030.421.3752980.04013020340
129.421.252941.75000210
15.04151.51181214481
140.2521.5210920111102012011
136.54.2521143.500002454510
125.580.3352483.50001234010
129.833.52840.1650000221610
123.0802441011101010
032.171.462941.08511160212020801
125.173.521340.62511702070601
035.173.7521100160202010
018.58102240.4150000280430
139.9252350.210000255010
123.4212840.50001128010
137.58028400000318411
024.7513.66521181.50000228020
047132355.16511912011
134.175.252940.0850001229071
122.170.58511100000210010
127.751.292480.250001114010
142.754.0852640.04000021081010
128.6714.52240.1250000202870
136.2552852.51160203681
018.171011180.1650000234010
121.251.52941.50000215091
038.921.6652640.250000203910
131.830.041740.0400002010
017.339.52641.750110120110
020.420.83521141.58511102011
039.08428430000248010
138.670.212440.0851001228011
127.6713.752945.75100124875011
127.750.58511340.25112022605011
11901110014024520
0250.87521481.041001216058611
127.672214811140214075451
122.2592640.08500002010
049.8313.5852488.510012011
132.332.52841.250001228010
138.2510.1251440.1250000216010
147.336.528410001202290
127.8341385.75112127510
035.750.9152640.7511402015841
133.580.2523540001142010
134.080.081750.041111228020011
020.7510.33521380.3351111280511
133.17121440.751171234040721
122.751121142.5117121008101
148.758.528812.51190218116561
140.585284511702030661
120.670.83518420001124010
038.751.52110000027610
057.0819.52845.511702030011
031.253.7521380.6251191218111
1220.792940.29011024202840
058.331021144111402016031
128.920.3752840.29000022201410
04642530100021009611
12131241.0851181216021
024.7512.52641.51112121205681
020.830.5110210000226010
124.5813.511100000218410
026.52.711840.085000018010
140.920.83521101000213020
038.334.4152840.1250000216010
119.580.5852110013023507700
139.259.52746.511140224046081
125.750.52841.461151231211
046.0832842.3751181239641601
119.67101480.8351001214010
022.251.251113.250000228010
118.833.5411100001218020
164.0820214817.511912010011
016.51.2521140.2501102108990
068.671521090111402033771
176.7522.29210912.751111201101
015.922.87521140.0850000212010
134.83422512.51001218410
047.42821056.511602375511011
123.17028400000318411
145.171.52842.51001214010
115.177210410000260010
118.830.4151840.1650110220020
152.56.52446.291115020112031
119.17017500001150021
1180.16521170.2100002200411
137.50.83521040.040000212060
122.671.5851943.085116028011
147.834.16521450.0850001252010
134.082.5284100002460170
033.081.6252240.5400012010
143.080.3751840.375118123001631
134.54.041358.51171219511
142.75323511000202010
118.250.1652240.250001128010
123.082.52110.0850001210042090
022.58.4611442.460000216411
117.920.2052640.04000022807510
118.4210.4151640.125100021203760
027.671.527421000136810
018.929.25184111412805011
122.670.752341.58501112400100
162.512.7518851000211210
023.5921148.51151212011
135.253.16521483.751001268010
056.834.25111500012050
053.330.16521100001162280
141.174.04213871180232011
142.175.04211812.75100129211
141.171.251940.250000201960
033.750.7524511131221210
125.6712.521341.211167121402591
124.336.6251245.51001110011
123.3311.6251940.835100121603011
130.672.521382.250001134010
137.17428551001128010
126.251.542940.1250000210010
029.750.6652940.250001230010
0231.835253001102200540
117.2532440.0400012160410
129.2514.792645.041151216811
028.583.542350.51001217110
134.58028400000318410
123.420.5852880.0851000218010
12511.252842.511170220012091
018.757.521142.7111502184267271
117.0821140.3350140216090
016.080.3352110011021601270
132.922.52641.750121272010
020.33102881114025014661
01.7515300000216010
133.171.0421286.510012164312861
025.332.0852882.751001236020
024.75321181.83511190205011
130.8302941.2511020211
120.755.0851540.29000021401850
040.338.1251440.16501202184190
129.421.252880.25012124001090
140.920.51740.50001213010
029.50.462440.54114025011
154.420.51483.96100021803151
1345.51841.5000126010
125122442.251121212060
026.582.54111000012180610
033.084.625211811202011
133.672.1652841.50000312010
136.172355000022106880
119.50.292440.29000022803650
124.170.87521144.6251121252020011
030.56.5285411712030661
12072840.500002010
125.330.582840.29117129651251
129.584.75274201112460690
143.172.252350.751000256010
128.751.1652440.51000128010
131.573135700002020
120.259.962102010002011
1458.5213814111128820011
022.832.2921182.291171214023851
020.67321140.1651130210071
127.831.52942.250111210040
140.922.251148101001217610
156.422818428.51140020161
064.080.1652110111022321011
022.4211.2511480.751140203221
024.332.51354.5000022004570
069.56211000001010
135.580.752441.50001223110
148.3312274161000111011
028.081511090100020132131
135.172.52444.51170215012711
149.57.5852357.585111512050011
180.255.52840.541000203410
129.25132280.50000222810
016.920.52340.16501612240360
0160.16526410121232020
160.0814.521118111512010011
122481121218111
141.51.542353.50000211
124.0892640.2500012010
124.513.335164000121204760
134.751521275.3751191201351
133.671.252941.1650000212010
040.83101181.7510002298381
120.421.8352842.25111021001511
137.51.1251241.50001243111
148.54.252740.1251001222511
1230.752740.50001132010
13.3752888.2900012010
116.332.752640.6650110280220
22.6721181.335100010011
021.7511.752840.250001218010
025.082.541640.251001237011
136.332.1251940.085111025011881
028.583.752840.2501112401550
122.1712.1252843.335012121801740
134.171.5421341.5411112520500011
1352.523410001221010
128.583.6252640.250001210010
019.175.4152380.2900002804850
123.2512840.8351000130011
116.50.1252840.1650000213210
020.080.12521141011022407691
122.3311294211102802791
1345.0851351.085001248010
057.080.33523511001225221980
116.250.8352740.0851000120010
132.8321382.751160216020731
148.2525.0852941.7511302151
134.172.752352.5000122322010
118.331.21110200000210010
144.250.527410.751000140010
138.921.752440.50001230030
131.580.751643.50001232010
125.081.7121441.66511112395211
165.4211210920117122211
141.3302851510002011
131.251.12521100110296200
036.754.7121100000216010
132.337.521051.5851001142010
031.923.1252113.040121220050
124.832.752842.25116021846011
121.920.5411440.0411112840601
134.25321387.41510012011
151.8331111.50000218050
031.571.52110012122001060
138.420.7052840.375012022255010
139.171.7121440.1251151248011
118.172.462870.96012121605880
139521343.5111012011
12011.04528420001213610
132.752.3352285.750001229210
118.585.712240.540000212010
015.837.62521140.1250111201610
139.335.87521381011141239911
019.580.6652941.6650000222060
121.3310.5284310012011
022.670.752842012122003950
125.673.252882.2901112416220
121.0810.08511081.250000226010
0491.5253010012100280
120.675.2921140.3751110216010
019.670.2121180.29111102801001
121.830.252280.66510012011
126.830.5424100000210010
038.585213413.51001298010
050.0812.542642.291131215611
015.750.375284100002120190
024.512.752854.7511202734451
1214.791942.2511112803011
122.081121340.6651000210011
154.589.41521114.415111112303011
118.085.52440.5100028011
136.674.4151440.2511101232011
138.1710.12521442.5116025201971
121.831.542440.0850001235610
051.926.52353.085000127310
122.172.252340.12500002160110
152.421.52243.750001203510
060.92526441140201001
120.175.6252941.711000112011
123.2542850.251001216011
136.170.421940.290001230930

 

以下是对应上述缺失值处理方法的Python代码示例:

1. 常数填充

 在这个修改后的代码中,constant_for_continuous是填充连续变量缺失值的常数(这里用0作为示例),而constant_for_discrete是填充离散变量缺失值的常数(这里用字符串'未知'作为示例)。您可以根据需要更改这些常数的值。

import pandas as pd# 读取Excel文件
df = pd.read_excel("银行贷款审批数据.xlsx")# 定义连续变量和离散变量列表
continuous_vars = ['x2', 'x3', 'x5', 'x6', 'x7', 'x10', 'x13', 'x14']
discrete_vars = ['x1', 'x4', 'x8', 'x9', 'x11', 'x12']# 使用常数填充连续变量的缺失值(例如,使用常数0)
constant_for_continuous = 0
for var in continuous_vars:df[var].fillna(constant_for_continuous, inplace=True)# 使用常数填充离散变量的缺失值(例如,使用字符串'未知')
constant_for_discrete = '未知'
for var in discrete_vars:df[var].fillna(constant_for_discrete, inplace=True)# 检查是否还有缺失值
missing_values = df.isnull().sum().sum()
if missing_values == 0:print("所有缺失值已填充。")
else:print("仍有缺失值未填充。")# 输出填充后的数据框的前几行
print(df.head())# 保存填充后的数据框到Excel文件
df.to_excel("填充后的银行贷款审批数据_常数填充.xlsx", index=False)

 

 

 

 

2. 均值/中位数/众数填充

 
import pandas as pd
from scipy import stats# 读取Excel文件
df = pd.read_excel("银行贷款审批数据.xlsx")# 定义连续变量和离散变量列表
continuous_vars = ['x2', 'x3', 'x5', 'x6', 'x7', 'x10', 'x13', 'x14']
discrete_vars = ['x1', 'x4', 'x8', 'x9', 'x11', 'x12']# 使用均值填充连续变量的缺失值
for var in continuous_vars:df[var].fillna(df[var].mean(), inplace=True)# 或者使用中位数填充连续变量的缺失值
# for var in continuous_vars:
#    df[var].fillna(df[var].median(), inplace=True)# 使用众数填充离散变量的缺失值
for var in discrete_vars:mode_value = stats.mode(df[var].dropna())[0][0]df[var].fillna(mode_value, inplace=True)# 检查是否还有缺失值
missing_values = df.isnull().sum().sum()
if missing_values == 0:print("所有缺失值已填充。")
else:print("仍有缺失值未填充。")# 输出填充后的数据框的前几行
print(df.head())# 保存填充后的数据框到Excel文件
df.to_excel("填充后的银行贷款审批数据_均值众数填充.xlsx", index=False)

3. 插值填充

import pandas as pd# 读取Excel文件
df = pd.read_excel("银行贷款审批数据.xlsx")# 定义连续变量和离散变量列表
continuous_vars = ['x2', 'x3', 'x5', 'x6', 'x7', 'x10', 'x13', 'x14']
discrete_vars = ['x1', 'x4', 'x8', 'x9', 'x11', 'x12']# 使用线性插值填充连续变量的缺失值
for var in continuous_vars:df[var].interpolate(method='linear', inplace=True)# 对于离散变量,插值通常不是合适的方法,因为它们通常是分类数据。
# 因此,我们仍然使用众数来填充离散变量的缺失值。
for var in discrete_vars:most_frequent_value = df[var].mode()[0]df[var].fillna(most_frequent_value, inplace=True)# 检查是否还有缺失值
missing_values = df.isnull().sum().sum()
if missing_values == 0:print("所有缺失值已填充。")
else:print("仍有缺失值未填充。")# 输出填充后的数据框的前几行
print(df.head())# 保存填充后的数据框到Excel文件
df.to_excel("填充后的银行贷款审批数据_插值填充.xlsx", index=False)

4. 基于模型预测填充

 

python复制代码

from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
# 迭代式填充
imputer = IterativeImputer(max_iter=10, random_state=0)
df_filled = imputer.fit_transform(df)
df = pd.DataFrame(df_filled, columns=df.columns)

5. 热卡填充(示例代码,需要自定义逻辑)

import pandas as pd
from sklearn.impute import KNNImputer# 读取Excel文件
df = pd.read_excel("银行贷款审批数据.xlsx")# 假设 continuous_vars 是包含连续变量的列名的列表
continuous_vars = ['x2', 'x3', 'x5', 'x6', 'x7', 'x10', 'x13', 'x14']# 提取连续变量
df_continuous = df[continuous_vars]# 使用KNNImputer填充缺失值
# 设定K值,这里以2为例,你可以根据数据集的特性调整这个值
knn_imputer = KNNImputer(n_neighbors=2)
df_continuous_filled = knn_imputer.fit_transform(df_continuous)# 将填充后的数据转换回DataFrame格式
df_continuous_filled = pd.DataFrame(df_continuous_filled, columns=continuous_vars)# 将填充后的连续变量重新合并到原始DataFrame中
df[continuous_vars] = df_continuous_filled# 检查是否还有缺失值
missing_values = df[continuous_vars].isnull().sum().sum()
if missing_values == 0:print("所有连续变量的缺失值已基于KNN填充。")
else:print(f"仍有 {missing_values} 个连续变量的缺失值未填充。")# 保存填充后的数据框到Excel文件
df.to_excel("填充后的银行贷款审批数据_KNN填充.xlsx", index=False)


6. 多重插补(使用fancyimpute库)

import pandas as pd
from fancyimpute import IterativeImputer# 读取Excel文件
df = pd.read_excel("银行贷款审批数据.xlsx")# 初始化IterativeImputer
# max_iter设置迭代次数,可以设置较高的值以确保收敛
# min_value和max_value用于限制填充值的范围,可根据实际数据调整
imputer = IterativeImputer(max_iter=10, random_state=0, min_value=0, max_value=1)  # 假设数据在0和1之间# 填充缺失值
df_filled = imputer.fit_transform(df)# 将填充后的数组转换回DataFrame
df_filled = pd.DataFrame(df_filled, columns=df.columns)# 检查是否还有缺失值
missing_values = df_filled.isnull().sum().sum()
if missing_values == 0:print("所有缺失值已基于多重插补填充。")
else:print(f"仍有 {missing_values} 个缺失值未填充。")# 保存填充后的数据框到Excel文件
df_filled.to_excel("填充后的银行贷款审批数据_多重插补.xlsx", index=False)

 


7. 基于相似性的填充(使用K近邻)

 

python复制代码

from sklearn.impute import KNNImputer
# K近邻填充
imputer = KNNImputer(n_neighbors=2)
df_filled = imputer.fit_transform(df)
df = pd.DataFrame(df_filled, columns=df.columns)

请注意,以上代码示例中的df['column_name']应替换为实际的列名,而df应替换为你的实际DataFrame。此外,某些方法可能需要额外的库,如scipyfancyimpute,你可能需要先使用pip来安装它们。

每种填充方法都有其适用场景和局限性,选择哪种方法取决于数据的特性、缺失值的比例以及分析的目的。在实际应用中,可能需要尝试多种方法,并比较它们对分析结果的影响,以选择最合适的方法。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/810546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI预测体彩排3第1弹【2024年4月12日预测--第1套算法开始计算第1次测试】

前面经过多个模型几十次对福彩3D的预测,积累了一定的经验,摸索了一些稳定的规律,有很多彩友让我也出一下排列3的预测结果,我认为目前时机已成熟,且由于福彩3D和体彩排列3的玩法完全一样,我认为3D的规律和模…

【竞技宝】LOL:bin卡牌完美牵制 BLG击败TES晋级春决

北京时间2024年4月12日,英雄联盟LPL2024春季季后赛继续进行,昨天迎来四强赛胜者组决赛BLG对阵TES。本场比赛双方前几局有来有回战至2-2平,决胜局bin的上单卡牌中期完美牵制了TES,后期孤身一人偷家成功,最终BLG3-2击败TES晋级春决。以下是本场比赛的详细战报。 第一局: 首局比赛…

数字乡村可视化大数据-DIY拖拽式设计

DIY拖拽式大数据自由设计万村乐可视化大数据V1.0 随着万村乐数字乡村系统的广泛使用,我们也接收到了客户的真实反馈,最终在公司的决定下,我们推出了全新的可视化大数据平台V1.0版本,全新的可视化平台是一个通过拖拽配置生成可视化…

网络流量分析与控制

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计5477字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

爬虫现在还有那么吃香嘛?

Python 作为一种广泛应用的编程语言,在 Web 开发、大数据开发、人工智能开发和嵌入式开发等领域都有着重要的应用。 Python 的易学性、清晰性和可移植性等特点使它得到很多技术人士的喜爱。对于数据科学和机器学习领域的程序员来说,Python 提供了强大的…

YOLOV5 分类:利用yolov5进行图像分类

1、前言 之前介绍了yolov5的目标检测示例,这次将介绍yolov5的分类展示 目标检测:YOLOv5 项目:训练代码和参数详细介绍(train)_yolov5训练代码的详解-CSDN博客 yolov5和其他网络的性能对比 yolov5分类的代码部分在这 2、数据集准备 yolov5分类的数据集就是常规的摆放方式…

vue 文件预览

<template><div><p>打开新页面预览文件</p><div v-for"(item,index) in list" :key"index"><el-link type"primary" click"handleOpen(item.url)">{{item.name}}</el-link></div><…

物联网SaaS平台

在信息化、智能化浪潮席卷全球的今天&#xff0c;物联网SaaS平台作为推动工业数字化转型的重要工具&#xff0c;正日益受到广泛关注。那么&#xff0c;物联网SaaS平台究竟是什么&#xff1f;HiWoo Cloud作为物联网SaaS平台又有哪些独特优势&#xff1f;更重要的是&#xff0c;它…

Golang 基于共享变量的并发锁

一、互斥锁 先看一个并发情况&#xff0c;同时操作一个全局变量&#xff0c;如果没有锁会怎么样 假设有1000个goroutines并发进行银行余额的扣除&#xff0c;每次都扣除10元&#xff0c;起始的总余额是10000&#xff0c;理论上并发执行完应该是0对不对&#xff0c;但实际却不…

spring04:注解使用

spring04&#xff1a;注解使用 文章目录 spring04&#xff1a;注解使用前言&#xff1a;一、 Autowired Qualifier和 Resource 和 nullable1. Autowired 2. Resource &#xff1a;使用在类的属性上面&#xff08;和Autowired类似&#xff09;3. nullable 二、 Component 和 Re…

统信UOS桌面操作系统1060上隐藏Windows磁盘

原文链接&#xff1a;统信UOS桌面操作系统1060上隐藏Windows磁盘 Hello&#xff0c;大家好啊&#xff01;继之前我们讨论了如何在统信UOS桌面操作系统1060上安装双系统之后&#xff0c;今天我要给大家介绍的是&#xff0c;在这个基础上如何隐藏Windows磁盘分区。这样做可以让你…

大数据dolphinscheduler 本地容器化安装

Minio 容器安装 docker run -p 9000:9000 -p 9090:9090 --name minio -d -e "MINIO_ACCESS_KEYminioadmin" -e "MINIO_SECRET_KEYminioadmin" -v D:\SF\DOCKER\minio\data:/data -v D:\SF\DOCKER\minio\config:/root/.minio minio/minio server /da…

特别详细的Spring Cloud 系列教程2:微服务网关gateway的启动

继上一篇&#xff1a;特别详细的Spring Cloud 系列教程1&#xff1a;服务注册中心Eureka的启动 在比较多的教程和书籍里&#xff0c;spring cloud的微服务网关用的Zuul。然而&#xff0c;zuul已经不被官方提倡&#xff0c;现在提倡用的是spring cloud gateway。因为gateway的整…

WPS二次开发系列:Gradle版本、AGP插件与Java版本的对应关系

背景 最近有体验SDK的同学反馈接入SDK出现报错&#xff0c;最终定位到原因为接入的宿主app项目的gradle版本过低导致&#xff0c;SDK兼容支持了android11的特性&#xff0c;需要对应的gradle插件为支持android11的版本。 现象 解决方案 将gradle版本升级至支持android11的插件版…

海外代理IP如何助力YouTube广告投放?

一、海外代理的角色与优势 拓展地理访问&#xff1a; 海外代理允许您从其他国家或地区的IP地址进行网络访问。通过使用海外代理&#xff0c;您可以绕过部分限制&#xff0c;实现访问YouTube和其他平台的目的。扩展受众&#xff1a; 利用海外代理&#xff0c;您可以将广告投放面…

【学习】Spring IoCDI

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 Spring 是什么&#xff1f; 什么是 IoC容器&#xff1f; 传统开发模式 loC开发模式 IoC的优势 IoC 的使用 Bean的…

vue3使用jsQR解析二维码

1.了解jsQR jsQR是一个纯javascript脚本实现的二维码识别库&#xff0c;不仅可以在浏览器端使用&#xff0c;而且支持后端node.js环境。jsQR使用较为简单&#xff0c;有着不错的识别率。 2.效果图 3.二维码 4.下载jsqr包 npm i -d jsqr5.代码 <script setup> import …

迁移docker部署的GitLab

目录 1. 背景2. 参考3. 环境4. 过程4.1 查看原docker启动命令4.2 打包挂载目录传至新宿主机并创建对应目录4.3 保存镜像并传至新宿主机下4.4 新宿主机启动GitLab容器 5 故障5.1 容器不断重启5.2 权限拒绝5.3 容器内错误日志 6 重启容器服务正常7 总结 1. 背景 最近接到一个任务…

【Java】JDK1.8 HashMap源码,put源码详细讲解

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 在Java中&#xff0c;HashMap结构是被经常使用的&#xff0c;在面试当中也是经常会被问到的。这篇文章我给大家分享一下我对于HashMap结构源码的理解。 HashMap的存储与一般的数组不同&#xff0c;HashMap的每一个元素存…