热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

作业3(大作业):python数据分析与应用大作业,对用户用电量数据进行数据处理,包括数据转置、异常数据识别和处理、统计基本统计量(包括峰度、偏度)、按日/周(求和)差分、5%分位数等

Python数据分析与应用大作业使用学习过的知识(Numpy数值分析基础、Matplotlib数据可视化基础、Pandas统计分析基础),对data.csv用户用户用电量数据进行相
Python数据分析与应用大作业

使用学习过的知识(Numpy数值分析基础、Matplotlib数据可视化基础、Pandas统计分析基础),对data.csv用户用户用电量数据进行相关处理,其中数据中有编号为1-200的200位电力用户,DATA_DATE表示时间,如2015/1/1表示2015年1月1日,KWH为用电量。请完成以下工作:

一、将数据进行转置,转置后行为用户编号、列为日期、值为用户每日用电量。

二、对数据中的异常数据进行识别并处理。

三、统计每个用户用电数据的基本统计量,包括:最大值、最小值、均值、中位数、和、方差、偏度、峰度。

四、每个用户用电数据按日差分,并求取差分结果的基本统计量,统计量同三。

五、求取每个用户的5%分位数。

六、每个用户按周求和并差分(一周7天,年度分开),并求取差分结果的基本统计量,统计量同三。

七、统计每个用户的日用电量在其最大值0.9倍以上的次数。

八、求取每个用户日为最大值/最小值的索引月份,若最大值/最小值存在于多个月份中,则输出含有最大值/最小值最多的那个月份。如1号用户的最小值为0,则看哪个月的0最多。

九、求取每个用户七八月电量和与三四月电量和的比值,最大值的比值,最小值的比值,均值(日均电量)的比值。

十、合并上述特征。

一、将数据进行转置,转置后行为用户编号、列为日期、值为用户每日用电量

import pandas as pd
data = pd.read_csv('./data/data.csv', encoding='gbk')
# 转置data
# result = data.reset_index().pivot('CONS_NO', 'DATA_DATE', 'KWH')
data['DATA_DATE'] = pd.to_datetime(data['DATA_DATE'])
result = pd.pivot_table(data, index='CONS_NO', columns='DATA_DATE')
print(result)

导入pandas,导入data.csv文件同时编码设置为GBK,把DATA_DATE转换为时间序列,使用透视表将index设置为’CONS_NO’,columns设置为’DATA_DATE’。

注意:若此处不把DATA_DATE转换成时间序列,那么columns的排列顺序将不是按照时间顺序,而是按照数字顺序。例:未转换时,顺序为2015/1/1, 2015/1/10, 2015/1/11 , …;转换后,顺序为2015/1/1, 2015/1/2 , 2015/1/3 , …。

二、对数据中的异常数据进行识别并处理

# 异常值识别处理
null_value = data.isnull().sum() # 缺失值识别
print("data具有的缺失值:\n",null_value)
data.fillna(method='pad', inplace=True) # 缺失值处理方法:用前一个数据进行填充
null_value = data.isnull().sum()
print("data处理缺失值之后:\n",null_value)
u = data['KWH'].mean()
o = data['KWH'].std()
three_uo = data['KWH'].apply(lambda x: x>u+3*o or xresult1 = data.loc[three_uo, 'KWH'] # 使用3σ方法识别异常值
print("data在3σ下具有的异常值:\n",result1)

使用导入的data数据进行缺失值识别,识别方法为isnull结合sum方法确定缺失值的个数,再使用fillna方法填充缺失值;异常值识别方法为3σ方法识别异常值。偷懒了没有对异常值进行处理

说明:

pandas提供了识别缺失值的方法isnull以及识别非缺失值的方法nonull,这两种方法在使用时返回的都是bool值True和False,结合sum函数,可以检测数据中缺失值的分布以及数据中一共含有多少缺失值。isnull和nonull之间的结果正好相反。

处理缺失值有三种方法:

  • 删除法 —— 删除法可以分为删除观测记录和删除特征两种,它属于利用减少样本量来换取信息完整度的一种方法,是一种最简单的缺失值处理方法。pandas中提供了简便的删除缺失值的方法 dropna ,该方法既可以删除观测记录,亦可以删除特征。
  • 替换法 —— 特征可分为数值型类别型。当缺失值所在特征为数值型时,通常利用其均值、中位数和众数等描述其集中趋势的统计量来代替缺失值;当缺失值所在特征为类别型时,则使用众数来替换缺失值。PS:这里使用了pandas提供的 fillna 方法进行缺失值替换,原理是当 method 为 pad 时使用上一个非缺失值填补缺失值,当 method 为 bfill 时使用下一个非缺失值填补缺失值。
  • 插值法 —— 删除法简单,但是会引起数据结构的变动,样本减少;替换法使用难度低,但是会影响数据的标准差,导致信息量变动。所以除了上面两种方法,还有一种方法为插值法。常用的插值法有线性插值多项式插值样条插值线性插值是一种较为简单的插值方法,他针对已知的值求出线性方程,通过求解线性方程得到缺失值;多项式插值是利用已知的值拟合一个多项式,使得现有的数据满足这个多项式,再利用这个多项式求解缺失值,常见的多项式插值法有拉格朗日插值和牛顿插值等;样条插值是以可变的样条来作出一条经过一系列点的光滑曲线的插值方法,插值样条由一些多项式组成,每一个多项式都是由相邻两个数据点决定,这样可以保证两个相邻多项式及其导数在连接处连续。

异常值是指数据中个别值的数值明显偏离其余的数值,有时也成为离群点,检测异常值就是检验数据中是否有录入错误以及是否含有不合理的数据。异常值的检测常用的有两种方法,3σ原则箱线图分析

三、统计每个用户用电数据的基本统计量,包括:最大值、最小值、均值、中位数、和、方差、偏度、峰度

# 求每个用户的统计量
def statistics(df): # 数据统计并合并统计量
surface = pd.concat([df.min(), df.max(), df.mean(), df.median(), df.sum(), df.var(), df.skew(), df.kurt()],
axis=1)
surface.columns = ['min', 'max', 'mean', 'median', 'sum', 'var', 'skew', 'kurt']
return surface
print("每个用户用电数据的基本统计量:\n",statistics(result.T))

这里使用了自定义函数,是为了之后的题做准备。

数据使用了转置之后的数据result,再进行转置,调用statistics方法进行数据统计并合并统计量。

statistics中使用了pandas.concat方法,这个方法可以用来对表进行纵向堆叠,在默认情况下,即axis=0时,concat做列对齐,将不同行索引的两张或多张表纵向合并。

四、每个用户用电数据按日差分,并求取差分结果的基本统计量,统计量同三

# 每个用户用电数据按日差分
different = result.T.diff(1) # 对转置后的dataframe进行按日差分
print("每个用户用电数据按日差分:\n",different)
print("每个用户用电数据按日差分的基本统计量:\n",statistics(different))

这里使用result转置,并调用diff方法进行数据的按日差分。

调用statistics,对按日差分的数据进行统计,并输出所有的基本统计量。

五、求取每个用户的5%分位数

print("每个用户的5分位数为:\n",result.T.describe(percentiles=[0.05]))

使用describe方法统计每个用户的5%分位数。

六、每个用户按周求和并差分(一周7天,年度分开),并求取差分结果的基本统计量,统计量同三

# 每个用户按周求和并差分
data['DATA_DATE'] = pd.to_datetime(data['DATA_DATE'])
key = pd.PeriodIndex(data['DATA_DATE'], freq='w')
sum_week = data.groupby(by=['CONS_NO', key]).sum()
a = pd.pivot_table(sum_week, index='DATA_DATE', columns='CONS_NO')
different = a.diff(1)
print("每个用户按周求和并差分:\n",different)
print("每个用户按周求和并差分的基本统计量:\n",statistics(different))

对DATA_DATE进行时间序列转换。(由于第一题已经转换过了,这里可以不用再转换了)

frep=’w’使DATA_DATE按周的频率排列,同时获取其索引。PS:这里好像没有把年度分开

按照CONS_NO及key进行分组,并求和。(完成按周求和操作)

创建透视表,并差分,最后使用statistics统计基本统计量。

七、统计每个用户的日用电量在其最大值0.9倍以上的次数

a = result.T.apply(lambda x:x>x.max()*0.9).sum()
print("每个用户日用电量在其最大值0.9倍以上的次数:\n",a)

使用apply方法

八、求取每个用户日为最大值/最小值的索引月份,若最大值/最小值存在于多个月份中,则输出含有最大值/最小值最多的那个月份。如1号用户的最小值为0,则看哪个月的0最多

# 输出含有最大值/最小值最多的那个月份
print("输出含有最大值/最小值最多的那个月份:")
key = pd.PeriodIndex(data['DATA_DATE'], freq='m')
mOnth= data.groupby(by=['CONS_NO', key])['KWH'].max()# 按月进行分组
month_df = pd.DataFrame(month)
max_index = month_df.reset_index().groupby('CONS_NO')['KWH'].idxmax()
max_value = month_df.iloc[max_index]
max_value.columns = ['各用户的KWH最大值']
print(max_value) # 输出含有最大值最多的那个月份
min_index = data[(data.KWH == data.KWH.min())].index
surface_min = data.iloc[min_index]
key = pd.PeriodIndex(surface_min['DATA_DATE'], freq='m')
min_count = surface_min.groupby(by=['CONS_NO', key])['KWH'].count()# 按月进行分组
min_count_df = pd.DataFrame(min_count)
min_count_df_index = min_count_df.reset_index().groupby('CONS_NO')['KWH'].idxmax()
min_value = min_count_df.iloc[min_count_df_index]
min_value.columns = ['KWH最小值次数']
print(min_value) # 输出含有最小值最多的那个月份

于第六题相似,使用了PeriodIndex方法使得DATA_DATE以月为单位进行分组。

之后,由于groupby得到的是serise类,所以将month转换为dataframe类并结合reset_index与idxmax方法获取含有最大值最多的那个月份的索引。

将获得的索引使用iloc进行切片,得到所需结果。

输出含有最小值最多的那个月份的方法与输出含有最大值最多的那个月份的方法相似,但是需要对最小值进行比较,并求出每月最小值的个数。

九、求取每个用户七八月电量和与三四月电量和的比值,最大值的比值,最小值的比值,均值(日均电量)的比值

PS:这道题重复代码有点多,所以肯定不是最优答案,所以仅供参考。(求的是《作业3(大作业):python数据分析与应用大作业,对用户用电量数据进行数据处理,包括数据转置、异常数据识别和处理、统计基本统计量(包括峰度、偏度)、按日/周(求和)差分、5%分位数等》

def date_filter(df): # 日期筛选,选出三四月份,七八月份,返回两张表
idx = pd.IndexSlice
s_e = df.loc[idx[:,['2015-7','2015-8', '2016-7', '2016-8']],:]
t_f = df.loc[idx[:,['2015-3','2015-4', '2016-3', '2016-4']],:]
return s_e, t_f
def date_merge(df_1, df_2, name): # 合并符合要求的日期,同时进行比值处理,返回题解
df_ratio = pd.merge(df_1, df_2, on='CONS_NO')
df_ratio.columns = ['7-8月', '3-4月']
df_ratio[name] = df_ratio['7-8月'] / df_ratio['3-4月']
return df_ratio
key = pd.PeriodIndex(data['DATA_DATE'], freq='m')
mOnth= data.groupby(by=['CONS_NO', key])# 按月进行分组
month_sum = month.sum() # 求和的比值
s_e_1, t_f_1= date_filter(month_sum)
s_e_sum = s_e_1.groupby('CONS_NO').sum()
t_f_sum = t_f_1.groupby('CONS_NO').sum()
se_tf_sum_ratio = date_merge(s_e_sum, t_f_sum, 'sum_ratio')
print("每个用户七八月电量和与三四月电量和的比值:\n",se_tf_sum_ratio)
month_max = month.max() # 求最大值的比值
s_e_2, t_f_2 = date_filter(month_max)
s_e_max = s_e_2.groupby('CONS_NO').max().loc[:,'KWH']
t_f_max = t_f_2.groupby('CONS_NO').max().loc[:,'KWH']
se_tf_max_ratio = date_merge(s_e_max, t_f_max, 'max_ratio')
print("每个用户七八月电量最大值与三四月电量最大值的比值:\n",se_tf_max_ratio)
month_min = month.min() # 求最小值的比值
s_e_3, t_f_3 = date_filter(month_min)
s_e_min = s_e_3.groupby('CONS_NO').min().loc[:,'KWH']
t_f_min = t_f_3.groupby('CONS_NO').min().loc[:,'KWH']
se_tf_min_ratio = date_merge(s_e_min, t_f_min, 'min_ratio')
print("每个用户七八月电量最小值与三四月电量最小值的比值:\n",se_tf_min_ratio)
month_mean_sum= month.sum() # 求平均值的比值
s_e_4, t_f_4 = date_filter(month_mean_sum)
s_e_mean = s_e_4.groupby('CONS_NO').apply(lambda x:x.sum()/122) # 先计算每个用户七八月份总的用电量,然后除以总天数,得到平均值
t_f_mean = t_f_4.groupby('CONS_NO').apply(lambda x:x.sum()/122) # 同上
se_tf_mean_ratio = date_merge(s_e_mean, t_f_mean, 'mean_ratio')
print("每个用户七八月电量平均值与三四月电量平均值的比值:\n",se_tf_mean_ratio)

第一个自定义函数date_filter的作用是进行日期的筛选,选出每年七八月份与每年三四月份;一个参数接收一个表,返回两个表。

第二个自定义函数date_merge的作业是合并符合要求的日期同时进行比值的处理;三个参数接收两个表一个字符串,返回一个表。

以求和的比值为例:

先将DATA_DATE按照月分组,并求和。

调用date_filter方法分离七八月份与三四月份,并分别求和。

调用date_merge方法将两张已经求和的七八月份和三四月份的表合并,并将求比值的列取名叫sum_ratio。

注意:求平均值的比值时,求平均值的方法是用求和并除以122(总天数)得到平均值。

十、合并上述特征

# 合并特征
all_trait = pd.concat([se_tf_sum_ratio.loc[:,'sum_ratio'],
se_tf_max_ratio.loc[:,'max_ratio'],
se_tf_min_ratio.loc[:,'min_ratio'],
se_tf_mean_ratio.loc[:,'mean_ratio']],
axis=1)
print("合并特征:\n",all_trait)

方法与第三题相似

PS:题目给的参考答案是把第一至第九题的结果合并,但我理解成了将第九题的特征合并。

十一、代码及运行结果

PS:这是我的python数据分析与应用的大作业(非参考答案,参考需谨慎)

PS:这是我的python数据分析与应用的大作业(非参考答案,参考需谨慎)

import pandas as pd
data = pd.read_csv('./data/data.csv', encoding='gbk')
# 转置data
# result = data.reset_index().pivot('CONS_NO', 'DATA_DATE', 'KWH')
data['DATA_DATE'] = pd.to_datetime(data['DATA_DATE'])
result = pd.pivot_table(data, index='CONS_NO', columns='DATA_DATE')
print(result)
# 异常值识别处理
null_value = data.isnull().sum() # 缺失值识别
print("data具有的缺失值:\n",null_value)
data.fillna(method='pad', inplace=True) # 缺失值处理方法:用前一个数据进行填充
null_value = data.isnull().sum()
print("data处理缺失值之后:\n",null_value)
u = data['KWH'].mean()
o = data['KWH'].std()
three_uo = data['KWH'].apply(lambda x: x>u+3*o or xresult1 = data.loc[three_uo, 'KWH'] # 使用3σ方法识别异常值
print("data在3σ下具有的异常值:\n",result1)
# 求每个用户的统计量
def statistics(df): # 数据统计并合并统计量
surface = pd.concat([df.min(), df.max(), df.mean(), df.median(), df.sum(), df.var(), df.skew(), df.kurt()],
axis=1)
surface.columns = ['min', 'max', 'mean', 'median', 'sum', 'var', 'skew', 'kurt']
return surface
print("每个用户用电数据的基本统计量:\n",statistics(result.T))
# 每个用户用电数据按日差分
different = result.T.diff(1) # 对转置后的dataframe进行按日差分
print("每个用户用电数据按日差分:\n",different)
print("每个用户用电数据按日差分的基本统计量:\n",statistics(different))
# 每个用户的5%分位数
print("每个用户的5分位数为:\n",result.T.describe(percentiles=[0.05]))
# 每个用户按周求和并差分
data['DATA_DATE'] = pd.to_datetime(data['DATA_DATE'])
key = pd.PeriodIndex(data['DATA_DATE'], freq='w')
sum_week = data.groupby(by=['CONS_NO', key]).sum()
a = pd.pivot_table(sum_week, index='DATA_DATE', columns='CONS_NO')
different = a.diff(1)
print("每个用户按周求和并差分:\n",different)
print("每个用户按周求和并差分的基本统计量:\n",statistics(different))
# 每个用户的日用电量在其最大值0.9倍以上的数据
a = result.T.apply(lambda x:x>x.max()*0.9).sum()
print("每个用户日用电量在其最大值0.9倍以上的次数:\n",a)
# 第八题,输出含有最大值/最小值最多的那个月份
print("输出含有最大值/最小值最多的那个月份:")
key = pd.PeriodIndex(data['DATA_DATE'], freq='m')
mOnth= data.groupby(by=['CONS_NO', key])['KWH'].max()# 按月进行分组
month_df = pd.DataFrame(month)
max_index = month_df.reset_index().groupby('CONS_NO')['KWH'].idxmax()
max_value = month_df.iloc[max_index]
max_value.columns = ['各用户的KWH最大值']
print(max_value) # 输出含有最大值最多的那个月份
min_index = data[(data.KWH == data.KWH.min())].index
surface_min = data.iloc[min_index]
key = pd.PeriodIndex(surface_min['DATA_DATE'], freq='m')
min_count = surface_min.groupby(by=['CONS_NO', key])['KWH'].count()# 按月进行分组
min_count_df = pd.DataFrame(min_count)
min_count_df_index = min_count_df.reset_index().groupby('CONS_NO')['KWH'].idxmax()
min_value = min_count_df.iloc[min_count_df_index]
min_value.columns = ['KWH最小值次数']
print(min_value) # 输出含有最小值最多的那个月份
# 每个用户七八月电量和与三四月电量和的比值
def date_filter(df): # 日期筛选,选出三四月份,七八月份,返回两张表
idx = pd.IndexSlice
s_e = df.loc[idx[:,['2015-7','2015-8', '2016-7', '2016-8']],:]
t_f = df.loc[idx[:,['2015-3','2015-4', '2016-3', '2016-4']],:]
return s_e, t_f
def date_merge(df_1, df_2, name): # 合并符合要求的日期,同时进行比值处理,返回题解
df_ratio = pd.merge(df_1, df_2, on='CONS_NO')
df_ratio.columns = ['7-8月', '3-4月']
df_ratio[name] = df_ratio['7-8月'] / df_ratio['3-4月']
return df_ratio
key = pd.PeriodIndex(data['DATA_DATE'], freq='m')
mOnth= data.groupby(by=['CONS_NO', key])# 按月进行分组
month_sum = month.sum() # 求和的比值
s_e_1, t_f_1= date_filter(month_sum)
s_e_sum = s_e_1.groupby('CONS_NO').sum()
t_f_sum = t_f_1.groupby('CONS_NO').sum()
se_tf_sum_ratio = date_merge(s_e_sum, t_f_sum, 'sum_ratio')
print("每个用户七八月电量和与三四月电量和的比值:\n",se_tf_sum_ratio)
month_max = month.max() # 求最大值的比值
s_e_2, t_f_2 = date_filter(month_max)
s_e_max = s_e_2.groupby('CONS_NO').max().loc[:,'KWH']
t_f_max = t_f_2.groupby('CONS_NO').max().loc[:,'KWH']
se_tf_max_ratio = date_merge(s_e_max, t_f_max, 'max_ratio')
print("每个用户七八月电量最大值与三四月电量最大值的比值:\n",se_tf_max_ratio)
month_min = month.min() # 求最小值的比值
s_e_3, t_f_3 = date_filter(month_min)
s_e_min = s_e_3.groupby('CONS_NO').min().loc[:,'KWH']
t_f_min = t_f_3.groupby('CONS_NO').min().loc[:,'KWH']
se_tf_min_ratio = date_merge(s_e_min, t_f_min, 'min_ratio')
print("每个用户七八月电量最小值与三四月电量最小值的比值:\n",se_tf_min_ratio)
month_mean_sum= month.sum() # 求平均值的比值
s_e_4, t_f_4 = date_filter(month_mean_sum)
s_e_mean = s_e_4.groupby('CONS_NO').apply(lambda x:x.sum()/122) # 先计算每个用户七八月份总的用电量,然后除以总天数,得到平均值
t_f_mean = t_f_4.groupby('CONS_NO').apply(lambda x:x.sum()/122) # 同上
se_tf_mean_ratio = date_merge(s_e_mean, t_f_mean, 'mean_ratio')
print("每个用户七八月电量平均值与三四月电量平均值的比值:\n",se_tf_mean_ratio)
# 合并特征
all_trait = pd.concat([se_tf_sum_ratio.loc[:,'sum_ratio'],
se_tf_max_ratio.loc[:,'max_ratio'],
se_tf_min_ratio.loc[:,'min_ratio'],
se_tf_mean_ratio.loc[:,'mean_ratio']],
axis=1)
print("合并特征:\n",all_trait)

《作业3(大作业):python数据分析与应用大作业,对用户用电量数据进行数据处理,包括数据转置、异常数据识别和处理、统计基本统计量(包括峰度、偏度)、按日/周(求和)差分、5%分位数等》

最后,这是我的python数据分析与应用的大作业(非参考答案,参考需谨慎),肯定有错的或者可以优化的地方欢迎指出。

今后可能会继续把上课内容及作业写出来。(大概,不懒的话)

PS:上传了大作业所需要的文件

 


推荐阅读
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • Python中程序员的面试题有哪些
    小编给大家分享一下Python中程序员的面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
author-avatar
qyc_3830179
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有