当前位置: 首页 > news >正文

北京各大网站推广服务公司在线服装设计网站

北京各大网站推广服务公司,在线服装设计网站,无法打开网页如何解决,wordpress主题个人云盘数据清洗与预处理#xff1a;Python库大揭秘 前言 在数据科学领域#xff0c;数据清洗和预处理是构建可靠模型的关键步骤。本文深入探讨了一系列强大的Python库#xff0c;它们在处理重复数据、字符串匹配、数据整理以及降维等方面发挥着重要作用。通过学习这些库#xf…数据清洗与预处理Python库大揭秘 前言 在数据科学领域数据清洗和预处理是构建可靠模型的关键步骤。本文深入探讨了一系列强大的Python库它们在处理重复数据、字符串匹配、数据整理以及降维等方面发挥着重要作用。通过学习这些库数据科学家们能够更高效地提升数据质量为深入分析和建模打下坚实基础。 【Python百宝箱】从混沌到有序sortedcontainers库的数据魔法改变你的编程体验 欢迎订阅专栏Python库百宝箱解锁编程的神奇世界 文章目录 数据清洗与预处理Python库大揭秘前言1. Dedupe库1.1 去重方法1.2 数据清理技术1.3 聚类配置1.4 处理大规模数据 2. FuzzyWuzzy库2.1 模糊匹配算法2.2 字符串相似性计算2.3 应用案例2.4 大规模数据处理2.5 结果优化与阈值设定 3. PyJanitor库3.1 数据整理和清理工具3.2 列名标准化3.3 数据格式转换技术3.4 缺失值处理3.5 多表连接与合并 4. Pandas库4.1 数据框处理4.2 缺失值处理4.3 数据合并和连接技术4.4 数据分组和聚合操作4.5 时间序列处理4.6 数据透视表与交叉表 5. NumPy库5.1 数组操作与处理5.2 数学函数和统计方法5.3 线性代数操作5.4 数据类型转换技术5.5 随机数生成5.6 数据切片和索引技巧5.7 数组操作与广播机制 6. Scikit-learn库6.1 特征缩放与标准化6.2 异常值检测6.3 数据降维技术6.4 模型训练与评估6.5 超参数调优 总结 1. Dedupe库 1.1 去重方法 Dedupe库是一个用于识别和去除重复数据的Python库。它通过记录间的相似度计算使用聚类算法将相似的记录分组在一起从而实现数据去重。以下是一个简单的示例代码 import dedupe# 示例数据 data [{name: John Doe, email: johnexample.com},{name: Jane Doe, email: janeexample.com},{name: John Doe, email: johnexample.com}]# 定义字段相似度配置 fields [{field: name, type: String},{field: email, type: String}]# 初始化Dedupe deduper dedupe.Dedupe(fields)# 训练Dedupe模型 deduper.sample(data)# 查找相似记录并去重 clustered_data deduper.match(data)print(clustered_data)1.2 数据清理技术 Dedupe库除了去重功能外还提供了数据清理的功能。它可以通过定义预处理函数来规范化和清理数据。以下是一个简单的示例 import dedupe# 示例数据 data [{name: John Doe, email: johnexample.com},{name: Jane Doe, email: janeexample.com},{name: John Doe, email: johnexample.com}]# 定义字段相似度配置 fields [{field: name, type: String},{field: email, type: String}]# 初始化Dedupe deduper dedupe.Dedupe(fields)# 定义数据清理函数 def preProcess(data):data[name] dedupe.canonicalize(data[name])data[email] dedupe.canonicalize(data[email])return data# 训练Dedupe模型包括数据清理步骤 deduper.sample(data, preprocessorpreProcess)# 查找相似记录并去重 clustered_data deduper.match(data)print(clustered_data)为了进一步探索Dedupe库的功能我们可以了解更多有关其聚类配置和如何处理大量数据的内容。 1.3 聚类配置 在Dedupe中可以配置聚类设置以更好地适应不同类型的数据和需求。这包括定义聚类的阈值和模型参数。以下是一个示例代码展示了如何配置Dedupe的聚类参数 import dedupe# 示例数据 data [{name: John Doe, email: johnexample.com},{name: Jane Doe, email: janeexample.com},{name: John Doe, email: johnexample.com}]# 定义字段相似度配置 fields [{field: name, type: String},{field: email, type: String}]# 初始化Dedupe并配置聚类参数 deduper dedupe.Dedupe(fields, threshold0.5, num_cores2)# 训练Dedupe模型 deduper.sample(data)# 查找相似记录并去重 clustered_data deduper.match(data)print(clustered_data)在这个例子中threshold参数定义了聚类的相似度阈值以决定记录是否被视为相似。num_cores参数允许指定并行处理的核心数量有助于加速大规模数据的处理。 1.4 处理大规模数据 当处理大规模数据时Dedupe提供了一些技术来提高效率比如将数据分块处理。以下是一个处理大规模数据的示例 import dedupe# 示例数据生成器模拟大规模数据 def data_stream():for i in range(100000):yield {name: fJohn Doe {i}, email: fjohn{i}example.com}# 定义字段相似度配置 fields [{field: name, type: String},{field: email, type: String}]# 初始化Dedupe deduper dedupe.Dedupe(fields)# 使用数据生成器训练Dedupe模型 deduper.sample(data_stream())# 查找相似记录并去重可分块处理 clustered_data deduper.match(data_stream(), blockTrue)print(clustered_data)这个例子展示了如何使用数据生成器data_stream()模拟大规模数据并通过blockTrue参数使Dedupe能够逐块处理数据从而有效地处理大数据量。 以上是更深入了解Dedupe库的方法从聚类配置到处理大规模数据这些都是扩展了解数据去重和清理的重要方面。 2. FuzzyWuzzy库 2.1 模糊匹配算法 FuzzyWuzzy库提供了多种模糊匹配算法其中最常用的是fuzzy_ratio和token_sort_ratio。以下是一个简单的演示 from fuzzywuzzy import fuzz# 示例数据 string1 Hello World string2 Halo Wold# 使用fuzzy_ratio计算相似度 ratio fuzz.ratio(string1, string2) print(fFuzzy Ratio: {ratio})# 使用token_sort_ratio计算相似度考虑单词排序 token_ratio fuzz.token_sort_ratio(string1, string2) print(fToken Sort Ratio: {token_ratio})2.2 字符串相似性计算 除了基本的相似度计算外FuzzyWuzzy还提供了其他方法如partial_ratio、partial_token_sort_ratio等用于更灵活的字符串相似性计算。 from fuzzywuzzy import fuzz# 示例数据 string1 Hello World string2 Hello Python World# 使用partial_ratio计算相似度部分匹配 partial_ratio fuzz.partial_ratio(string1, string2) print(fPartial Ratio: {partial_ratio})# 使用partial_token_sort_ratio计算相似度 partial_token_ratio fuzz.partial_token_sort_ratio(string1, string2) print(fPartial Token Sort Ratio: {partial_token_ratio})2.3 应用案例 FuzzyWuzzy的模糊匹配功能广泛应用于文本匹配、字符串相似性比较等场景。以下是一个简单的案例比较两个字符串列表中的相似性 from fuzzywuzzy import process# 示例数据 choices [apple, banana, orange, kiwi] query kiwi fruit# 使用process库进行模糊匹配 best_match process.extractOne(query, choices)print(fBest Match: {best_match})这些FuzzyWuzzy库的功能是处理字符串相似性和模糊匹配的利器。或许可以深入了解一些高级用法比如处理大量数据或优化匹配结果。 2.4 大规模数据处理 当需要处理大规模数据时FuzzyWuzzy也提供了一些技巧来提高效率比如使用函数extractOne()的并行处理方法。以下是一个示例 from fuzzywuzzy import process from multiprocessing import Pool# 示例数据生成器模拟大规模数据 def data_generator():for i in range(100000):yield fTarget String {i}# 示例查询 query Target String 5678# 使用多进程并行处理 with Pool() as pool:best_match process.extractOne(query, data_generator(), scorerfuzz.ratio, poolpool)print(fBest Match: {best_match})这个例子演示了如何利用Python的multiprocessing.Pool实现并行处理加速处理大规模数据的模糊匹配过程。 2.5 结果优化与阈值设定 FuzzyWuzzy匹配结果可以通过设定阈值来优化只保留高于特定相似度的匹配项。以下是一个示例展示如何根据阈值过滤匹配结果 from fuzzywuzzy import process# 示例数据 choices [apple, banana, orange, kiwi] query kiwi fruit# 设定阈值 threshold 60# 使用process库进行模糊匹配并根据阈值筛选结果 matches process.extract(query, choices, scorerfuzz.ratio) filtered_matches [match for match in matches if match[1] threshold]print(fFiltered Matches: {filtered_matches})在这个例子中设定了一个阈值60筛选出与查询字符串相似度高于阈值的匹配结果。 这些方法可以让你更深入地利用FuzzyWuzzy库来应对不同的需求处理大规模数据优化匹配结果以及根据需要设定阈值来过滤匹配项。 3. PyJanitor库 3.1 数据整理和清理工具 PyJanitor库提供了一系列用于数据整理和清理的工具使数据处理更加简便。以下是一个使用PyJanitor进行列名标准化的示例 import pandas as pd import janitor# 示例数据 data {Column 1: [1, 2, 3], Column 2: [4, 5, 6]}# 创建DataFrame df pd.DataFrame(data)# 使用PyJanitor进行列名标准化 df_cleaned df.clean_names()print(df_cleaned)3.2 列名标准化 PyJanitor的clean_names方法用于将DataFrame的列名标准化为小写字母、去除空格等以提高数据处理的一致性。 import pandas as pd import janitor# 示例数据 data {First Name: [John, Jane, Jim], Last Name: [Doe, Smith, Brown]}# 创建DataFrame df pd.DataFrame(data)# 使用PyJanitor进行列名标准化 df_cleaned df.clean_names()print(df_cleaned)3.3 数据格式转换技术 PyJanitor还提供了用于数据格式转换的方法例如convert_excel_date用于将Excel日期转换为Python的datetime对象。 import pandas as pd import janitor# 示例数据 data {Date: [44271, 44272, 44273], Value: [10, 15, 20]}# 创建DataFrame df pd.DataFrame(data)# 使用PyJanitor进行Excel日期转换 df_converted df.convert_excel_date(Date)print(df_converted)PyJanitor的功能确实使数据处理更高效。或许可以继续探索一些更复杂的数据清理技术或特定场景下的运用。 3.4 缺失值处理 PyJanitor提供了处理缺失值的便捷方法比如fill_empty函数可以填充空值。 import pandas as pd import janitor# 示例数据 data {A: [1, None, 3], B: [4, 5, None]}# 创建DataFrame df pd.DataFrame(data)# 使用PyJanitor填充空值 df_filled df.fill_empty(columns[A, B], value0)print(df_filled)这个例子展示了如何使用fill_empty方法填充DataFrame中指定列的空值为特定数值。 3.5 多表连接与合并 PyJanitor也提供了简单易用的多表连接与合并功能比如join函数。 import pandas as pd import janitor# 示例数据 data1 {ID: [1, 2, 3], Name: [Alice, Bob, Charlie]} data2 {ID: [2, 3, 4], Age: [25, 30, 35]}# 创建DataFrame df1 pd.DataFrame(data1) df2 pd.DataFrame(data2)# 使用PyJanitor进行表连接 df_merged df1.join(df2, onID, howinner)print(df_merged)这个例子展示了如何使用join方法根据指定的列进行表连接按照内连接方式合并两个DataFrame。 这些技巧可以帮助你更灵活地应用PyJanitor处理缺失值、进行表连接等操作使数据清理和整理更为高效。 4. Pandas库 4.1 数据框处理 Pandas是一个强大的数据分析库提供了DataFrame对象用于处理和分析数据。以下是一个简单的Pandas示例演示如何使用DataFrame处理数据 import pandas as pd# 示例数据 data {Name: [John, Jane, Jim],Age: [25, 30, 22],Salary: [50000, 60000, 45000]}# 创建DataFrame df pd.DataFrame(data)# 显示DataFrame print(原始数据) print(df)# 访问列数据 ages df[Age] print(\n年龄列数据) print(ages)# 计算平均薪水 average_salary df[Salary].mean() print(\n平均薪水, average_salary)4.2 缺失值处理 Pandas提供了处理缺失值的方法例如dropna()用于删除包含缺失值的行fillna()用于填充缺失值。以下是一个简单的演示 import pandas as pd# 示例数据 data {Name: [John, Jane, None],Age: [25, None, 22],Salary: [50000, 60000, 45000]}# 创建DataFrame df pd.DataFrame(data)# 显示DataFrame print(原始数据) print(df)# 删除包含缺失值的行 df_cleaned df.dropna()# 显示处理后的DataFrame print(\n处理后的数据删除缺失值) print(df_cleaned)# 填充缺失值 df_filled df.fillna(value{Name: Unknown, Age: df[Age].mean()})# 显示处理后的DataFrame print(\n处理后的数据填充缺失值) print(df_filled)4.3 数据合并和连接技术 Pandas提供了多种数据合并和连接的方法例如merge()用于基于列进行合并concat()用于基于索引进行合并。以下是一个简单的示例 import pandas as pd# 示例数据 data1 {ID: [1, 2, 3], Name: [John, Jane, Jim]} data2 {ID: [2, 3, 4], Salary: [60000, 45000, 70000]}# 创建两个DataFrame df1 pd.DataFrame(data1) df2 pd.DataFrame(data2)# 使用merge进行基于列的合并 merged_df pd.merge(df1, df2, onID, howinner)# 显示合并后的DataFrame print(合并后的数据) print(merged_df)4.4 数据分组和聚合操作 Pandas的分组和聚合操作使得对数据进行统计和分析更加方便。以下是一个简单的演示 import pandas as pd# 示例数据 data {Department: [HR, IT, HR, IT, IT],Salary: [50000, 60000, 55000, 65000, 70000]}# 创建DataFrame df pd.DataFrame(data)# 按部门分组计算平均薪水 average_salary_by_department df.groupby(Department)[Salary].mean()# 显示分组和聚合结果 print(按部门分组计算平均薪水) print(average_salary_by_department)Pandas确实是一个非常强大的数据处理工具。或许可以继续探索一些高级功能或更广泛的应用场景。 4.5 时间序列处理 Pandas对时间序列数据的处理非常方便比如to_datetime()函数可以将字符串转换为日期时间对象resample()函数用于时间重采样。以下是一个简单的时间序列处理示例 import pandas as pd# 示例时间序列数据 dates [2023-01-01, 2023-01-02, 2023-01-03] values [100, 120, 90]# 创建时间序列DataFrame time_series pd.DataFrame({Date: dates, Value: values})# 将日期列转换为日期时间对象 time_series[Date] pd.to_datetime(time_series[Date])# 将日期列设置为索引 time_series.set_index(Date, inplaceTrue)# 进行每日重采样计算均值 daily_mean time_series.resample(D).mean()# 显示每日均值 print(每日均值) print(daily_mean)4.6 数据透视表与交叉表 Pandas可以轻松创建数据透视表和交叉表方便进行数据分析和汇总。以下是一个简单的示例 import pandas as pd# 示例数据 data {Department: [HR, IT, HR, IT, IT],Gender: [M, F, M, M, F],Salary: [50000, 60000, 55000, 65000, 70000]}# 创建DataFrame df pd.DataFrame(data)# 创建数据透视表 pivot_table pd.pivot_table(df, valuesSalary, indexDepartment, columnsGender, aggfuncmean)# 显示数据透视表 print(数据透视表) print(pivot_table)这个示例展示了如何使用pivot_table()函数创建一个简单的数据透视表对部门和性别进行薪水的平均值汇总。 这些高级功能和更广泛的应用场景能够帮助你更全面地了解Pandas库的强大之处从时间序列处理到数据透视表的应用扩展了解数据分析和处理的多种可能性。 5. NumPy库 5.1 数组操作与处理 NumPy是用于科学计算的基础库提供了强大的数组操作功能。以下是一个简单的NumPy示例 import numpy as np# 创建NumPy数组 arr np.array([1, 2, 3, 4, 5])# 数组运算 arr_squared arr ** 2# 显示结果 print(原始数组, arr) print(数组平方, arr_squared)5.2 数学函数和统计方法 NumPy包含丰富的数学函数和统计方法例如mean()用于计算平均值std()用于计算标准差。以下是一个简单的演示 import numpy as np# 创建NumPy数组 arr np.array([1, 2, 3, 4, 5])# 计算平均值和标准差 average_value np.mean(arr) std_deviation np.std(arr)# 显示结果 print(数组, arr) print(平均值, average_value) print(标准差, std_deviation)5.3 线性代数操作 NumPy提供了丰富的线性代数操作例如dot()用于矩阵相乘。以下是一个简单的示例 import numpy as np# 创建两个矩阵 matrix1 np.array([[1, 2], [3, 4]]) matrix2 np.array([[5, 6], [7, 8]])# 矩阵相乘 result_matrix np.dot(matrix1, matrix2)# 显示结果 print(矩阵1) print(matrix1) print(\n矩阵2) print(matrix2) print(\n矩阵相乘结果) print(result_matrix)5.4 数据类型转换技术 NumPy允许进行数据类型的转换例如将整数数组转换为浮点数数组。以下是一个简单的演示 import numpy as np# 创建整数数组 int_array np.array([1, 2, 3, 4, 5])# 将整数数组转换为浮点数数组 float_array int_array.astype(float)# 显示结果 print(整数数组, int_array) print(浮点数数组, float_array)NumPy的这些基础功能对于科学计算和数据处理确实非常有用。或许你可以深入探索一些高级的功能或者更多实际应用场景。 5.5 随机数生成 NumPy内置了丰富的随机数生成功能比如random.rand()用于生成服从均匀分布的随机数组。以下是一个简单的示例 import numpy as np# 生成随机数组 random_array np.random.rand(5)# 显示随机数组 print(随机数组, random_array)5.6 数据切片和索引技巧 NumPy允许灵活地进行数据切片和索引操作以便获取特定部分的数据。以下是一个简单的演示 import numpy as np# 创建NumPy数组 arr np.array([1, 2, 3, 4, 5])# 数据切片 slice_arr arr[2:4]# 显示切片结果 print(原始数组, arr) print(切片结果, slice_arr)5.7 数组操作与广播机制 NumPy的广播机制能够对不同形状的数组进行计算使得操作更加灵活。以下是一个简单的示例 import numpy as np# 创建NumPy数组 arr1 np.array([[1, 2, 3], [4, 5, 6]]) arr2 np.array([10, 20, 30])# 使用广播机制进行数组运算 result arr1 * arr2# 显示运算结果 print(数组1) print(arr1) print(\n数组2) print(arr2) print(\n广播运算结果) print(result)这些高级功能和实际应用场景可以帮助你更全面地理解和利用NumPy库从随机数生成到数据切片与广播机制的应用扩展了解科学计算和数据处理的多种可能性。 6. Scikit-learn库 6.1 特征缩放与标准化 Scikit-learn提供了用于特征缩放和标准化的方法例如MinMaxScaler和StandardScaler。以下是一个简单的演示 from sklearn.preprocessing import MinMaxScaler, StandardScaler import numpy as np# 示例数据 data np.array([[1, 2], [3, 4], [5, 6]])# 使用MinMaxScaler进行特征缩放 minmax_scaler MinMaxScaler() minmax_scaled_data minmax_scaler.fit_transform(data)# 使用StandardScaler进行标准化 standard_scaler StandardScaler() standard_scaled_data standard_scaler.fit_transform(data)# 显示结果 print(原始数据) print(data)print(\nMinMax缩放后的数据) print(minmax_scaled_data)print(\n标准化后的数据) print(standard_scaled_data)6.2 异常值检测 Scikit-learn中的IsolationForest模型可以用于检测数据中的异常值。以下是一个简单的演示 from sklearn.ensemble import IsolationForest import numpy as np# 示例数据包含一个异常值 data np.array([[1], [2], [3], [100]])# 创建IsolationForest模型 isolation_forest IsolationForest(contamination0.25)# 训练模型并预测异常值 outliers isolation_forest.fit_predict(data)# 显示结果 print(原始数据) print(data)print(\n异常值预测结果) print(outliers)6.3 数据降维技术 Scikit-learn提供了多种数据降维的方法例如主成分分析PCA。以下是一个简单的PCA演示 from sklearn.decomposition import PCA import numpy as np# 示例数据 data np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 创建PCA模型降维到2维 pca PCA(n_components2)# 拟合模型并进行数据降维 reduced_data pca.fit_transform(data)# 显示结果 print(原始数据) print(data)print(\n降维后的数据) print(reduced_data)这些示例代码涵盖了数据清洗和预处理的多个方面使用了各种Python库包括Dedupe、FuzzyWuzzy、PyJanitor、Pandas、NumPy和Scikit-learn。这些库提供了丰富的工具和功能使数据科学家能够有效地处理和准备数据为后续的分析和建模提供高质量的数据基础。 Scikit-learn提供的这些功能确实能够帮助进行特征处理、异常值检测和数据降维。或许你可以继续探索一些模型训练、评估或超参数调优等方面的内容。 6.4 模型训练与评估 Scikit-learn提供了多种机器学习模型比如LinearRegression、DecisionTreeClassifier等以及用于模型评估的方法比如cross_val_score。以下是一个简单的线性回归模型的示例 from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error import numpy as np# 示例数据 X np.array([[1], [2], [3], [4], [5]]) y np.array([2, 4, 6, 8, 10])# 划分训练集和测试集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 创建线性回归模型 model LinearRegression()# 拟合模型 model.fit(X_train, y_train)# 预测 predictions model.predict(X_test)# 评估模型 mse mean_squared_error(y_test, predictions)# 显示结果 print(预测结果, predictions) print(\n均方误差, mse)6.5 超参数调优 通过网格搜索GridSearchCV或随机搜索RandomizedSearchCVScikit-learn可以帮助你调优模型的超参数。以下是一个简单的演示 from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import GridSearchCV import numpy as np# 示例数据 X np.array([[1], [2], [3], [4], [5]]) y np.array([2, 4, 6, 8, 10])# 创建随机森林回归器 model RandomForestRegressor()# 定义超参数网格 param_grid {n_estimators: [10, 50, 100],max_depth: [None, 5, 10]}# 创建网格搜索对象 grid_search GridSearchCV(estimatormodel, param_gridparam_grid, cv3)# 拟合模型 grid_search.fit(X, y)# 获取最优参数和最佳得分 best_params grid_search.best_params_ best_score grid_search.best_score_# 显示结果 print(最佳参数, best_params) print(\n最佳得分, best_score)这些技术可以帮助你更好地训练模型、评估模型性能甚至通过超参数调优提升模型的性能是机器学习中重要的一步。 总结 在数据科学的征程中数据清洗与预处理是通往高效模型和准确分析的关键一环。我们深入研究了Dedupe、FuzzyWuzzy、PyJanitor、Pandas、NumPy和Scikit-learn等Python库它们为数据科学家提供了强大的工具使得清洗、整理和分析数据变得更加容易。通过掌握这些库的使用方法你将在面对复杂的数据挑战时游刃有余为数据科学领域的发展贡献一份力量。
http://www.zqtcl.cn/news/695804/

相关文章:

  • 网站后台被百度蜘蛛抓取哪个做网站比较好
  • 企业建设网站的需求分析百度免费发布信息平台
  • 网站建设交易中心上海装修公司排行榜
  • 桂林论坛网站有哪些在线设计平台用户分析
  • wap网站的开发去加网 wordpress
  • 博客网站建设设计论文总结php mysql做网站登录
  • 海南智能网站建设公司wordpress 如何使用php版本号
  • 河南网站开发培训app 软件开发
  • 购物网站功能介绍一流的高密网站建设
  • 电影网站怎么做优化wordpress 去掉w
  • 永久网站空间标书制作员工资很低吗
  • 做网站用到ps么淘宝优惠网站怎么做
  • jsp 淘宝网站验证码 设计搜索引擎排名
  • pdf怎么做电子书下载网站北京成立公司
  • 网站后台附件无法上传阿克苏建设网站
  • 网站和网址有什么不同佛山狮山网站建设
  • 有免费的微网站是什么可以做长图的网站
  • 南昌手机建站模板18种禁用软件黄app
  • 备案的域名做电影网站wordpress伪静态cdn配置
  • 国家城乡住房建设部网站百度关键词首页排名
  • 安卓软件开发需要学什么软件北京百度推广优化公司
  • 用asp.net 做网站wordpress网址缩短
  • 中国工程建设交易信息网站仿蘑菇街wordpress主题
  • 网站需要怎么做做普通网站公司吗
  • 网站收录平台方法网站建设是不是都需要交费
  • 上海 政务网站建设情况营销模式有哪些 新型
  • 国内做免费视频网站有哪些苏州娱乐场所最新消息
  • 福田建设网站宿迁网站建设案例
  • 建立企业网站的目的和意义人力资源外包收费标准
  • 网站开发前后端分离湘潭seo磐石网络