Pandas03

目录

数据修改

修改列名

修改行索引

修改索引名(重置索引)rename_axis

修改值

修改类型

替换值

数据增加

新增列(固定值)

新增列(计算值)

新增列(比较值)

新增列(判断值)

增加多列

新增列(引用变量)

新增一行(末尾追加)

新增行(指定位置)

数据删除

删除指定行

删除条件行

删除列

删除列(按列号)

数据筛选

筛选列

通过列号

通过列名

条件(列号)

条件(列名包含指定值)

组合(行号+列名)

筛选行

通过行号

通过行号(多行)

固定间隔

判断语句

条件(指定行号)

筛选(指定值)

逆向筛选

多条件

条件求和(不适用groupby)

条件计数

组合筛选

筛选某行某列

筛选多行多列

组合(行号+列号)返回值

组合(行号+列号)返回值

条件返回值

query计算式条件查询

query(引用变量)

select_dtypes筛选数据类型

数据分组

分组取消索引

排序

频率value_counts/size

计数count

分组查看

查看各组信息groups

 查看指定条件信息get_group

分组规则

分组筛选统计

分组筛选计算包含总数

 通过字符长度分组

 通过字典进行分组

通过多列

分组转换transform

分组聚合统计agg

分组过滤filter

聚合统计

计算指标

通过agg修改列名

组合计算

多层统计

自定义函数

数据统计

均值、中位数、众数

agg统计部分信息

describe 统计完整信息

corr 相关系数统计信息

diff 计算行之间的差异

pct_change 计算差值变化率


数据修改

修改列名

将原 df 列名 Unnamed: 2Unnamed: 3Unnamed: 4 修改为 金牌数银牌数铜牌数

import pandas as pd
df = pd.read_csv('东京奥运会奖牌数据.csv')
df.rename(columns={'Unnamed: 2':"金牌数",
                   "Unnamed: 3":"银牌数",
                   "Unnamed: 4":"铜牌数"},inplace=True)

修改行索引

将第一列(排名)设置为索引

df.set_index("排名",inplace=True)

修改索引名(重置索引)rename_axis

修改索引名为 金牌排名

df.rename_axis("金牌排名",inplace=True)

查询级别数

df.index.nlevels  # 标题

修改值

将 ROC(第一列第五行)修改为 俄奥委会

df.iloc[4,0] = '俄奥委会'

修改类型

将【金牌数】列类型修改为int

# 打开时定义数据类型
df = pd.read_csv('东京奥运会奖牌数据.csv', dtype = {'column_name' : str})

# 自定义的DataFrame
df = pd.DataFrame(a, dtype='float')  #示例1
df = pd.DataFrame(data=d, dtype=np.int8) #示例2

# 单列修改为数值
df['金牌数'] = pd.to_numeric(df['金牌数'])

# astype强制转换(两列)
df[['金牌数','银牌数']] = df[['金牌数','银牌数']].astype(int)

替换值

# 单值替换:将金牌数列的数字 0 替换为 无
df['金牌数'].replace(0,'无',inplace=True)

# 多值替换:将 无 替换为 缺失值 ;将 0 替换为 None
import numpy as np
df.replace(['无',0],[np.nan,'None'],inplace=True)

数据增加

新增列(固定值)

新增一列 【比赛地点】,值为 东京

df['比赛地点'] = '东京'

新增列(计算值)

新增一列 【金银牌总数】列,值为该国家金银牌总数

df = df.replace('None',0)
df['金银牌总数']=df['金牌数'] + df['银牌数']

新增列(比较值)

新增一列 【最多奖牌数量】 列,值为该【金银牌】三列数量中最多的一个奖牌数量

例如中国金牌38,银牌32,铜牌18,最大值为38

df['最多奖牌数量'] = df.bfill(1)[["金牌数", "银牌数",'铜牌数']].max(1)

df['最多奖牌数量'] = df[["金牌数", "银牌数",'铜牌数']].max(1)

新增列(判断值)

新增一列 【金牌大于30】

如果一个国家的金牌数大于 30 则值为 是,反之为 否

import numpy as np
df['金牌大于30'] = np.where(df['金牌数']>30,'是','否')

增加多列

新增两列,分别是

  • 金铜牌总数(金牌数+铜牌数)

  • 银铜牌总数(银牌数+铜牌数)

df = df.assign(金铜牌总数=df.金牌数 + df.铜牌数,银铜牌总数=df.银牌数+df.铜牌数) 

新增列(引用变量)

新增一列金牌占比,为各国金牌数除以总金牌数(变量:gold_sum)

eval()方法:可以借助列名称进行运算,不占用内存,可将字符串形式的字典列表等转换成字典列表

gold_sum = df['金牌数'].sum()
df.eval(f'金牌占比 = 金牌数 / {gold_sum}',inplace=True)

 Pandas学习笔记十——高性能的eval和query方法_盐味橙汁的博客-CSDN博客

append 新增一行(末尾追加)

在 df 末尾追加一行,内容为 0,1,2,3… 一直到 df 的列长度

df1 = pd.DataFrame([[i for i in range(len(df.columns))]], columns=df.columns)
df_new = df.append(df1)

新增行(指定位置)

在第 2 行新增一行数据,即美国和中国之间。

df1 = df.iloc[:1, :]
df2 = df.iloc[1:, :]  # 拼接上第二行后的数据
df3 = pd.DataFrame([[i for i in range(len(df.columns))]], columns=df.columns)
df_new = pd.concat([df1, df3, df2], ignore_index=True) # 时忽略原本的索引,从0开始重建索引。

drop数据删除

删除指定行

删除 df 第一行

df.drop(1)

删除条件行

df.drop(df[df.金牌数<20].index)

删除列

删除刚刚新增的 【比赛地点】 列

df.drop(columns=['比赛地点'],inplace=True)

删除列(按列号)

删除 df 的 7、8、9、10 列

df.drop(df.columns[[7,8,9,10]], axis=1,inplace=True)

数据筛选

iloc 筛选列

通过列号

提取第 1、2、3、4 列

df.iloc[:,[0,1,2,3]]

通过列名

提取 金牌数、银牌数、铜牌数 三列

df[['金牌数','银牌数','铜牌数']]

条件(列号)

筛选全部 奇数列

df.iloc[:,[i%2==1 for i in range(len(df.columns))]]

条件(列名包含指定值)

提取全部列名中包含“数”的列

df.loc[:,df.columns.str.contains("牌")]

df.loc[:,df.columns.str.endswith("数")]  # 结尾包含“数”

df.loc[:,df.columns.str.startswith("国")]  # 开头包含“数”

组合(行号+列名)

提取倒数后三列的10-20行

df.loc[10:20, '总分':] 

loc 筛选行

通过行号

提取第10行

df.loc[9:9]

通过行号(多行)

提取第 10 行之后的全部行

df.loc[9:]

固定间隔

提取 0-50 行,间隔为 3

df[:50:3]

判断语句

# 提取 【金牌数】 大于 30 的行
df[df['金牌数'] > 30]

# 提取 【金牌数】 等于 10 的行
df[df['金牌数'] == 30]

# 提取 【金牌数】 不等于 10 的行
df[df['金牌数'] != 39]
df.loc[~(df['金牌数'] == 39)]

条件(指定行号)

提取全部 奇数行

df[[i%2==1 for i in range(len(df.index))]] 

df.loc[[i%2==1 for i in range(len(df.index))]] 

isin 筛选(指定值)

提取 中国、美国、英国、日本、巴西五行数据

df[~df.'国家奥委会'.isin(['中国','美国'])]

~逆向筛选

提取除了中国和美国的其他行数据

df[~df.'国家奥委会'.isin(['中国','美国'])]

pandas.isin 用来清洗数据,过滤某些行,或者说选出你想要的某些行。

多条件

在上一题的条件下,新增一个条件:金牌数小于30

df.loc[(df['金牌数']<30)&df['国家奥委会'].isin(['中国','美国','英国','日本','巴西'])]

条件求和(不适用groupby)

当【是否外市户籍】列为【是】时求和【金额】列

# 三种方法
print(df[df['是否外市户籍']=='是']['金额'].sum())
print(sum(df[df['是否外市户籍']=='是']['金额']))

import numpy as np
print(np.where(df['是否外市户籍']=='是', df['金额'],0).sum())

条件计数

求【是否外市户籍】列为【是】的次数

print(df[df['是否外市户籍']=='是']['是否外市户籍'].count().tolist()

组合筛选

筛选某行某列

提取第0行第2列

df.iloc[0:1,1:2]

df.iloc[0:1,[1]]

筛选多行多列

提取 第0-2行 第0-2列

df.iloc[0:2,0:2]  #  :  连续范围

df.iloc[0:2,[0,1]] # [] 可指定范围

组合(行号+列号)返回值

提取第4行,第4列的值

df.iloc[3,3]  # 返回21

at 组合(行号+列号)返回值

提取第4行,第4列的值

df.at[4,'金牌数']  # 返回20

条件返回值

提取 【国家奥委会】 为 【中国】 的金牌数

df.loc[df['国家奥委会']=='中国'].loc[1].at['金牌数']

# df['国家奥委会']=='中国']  返回布尔值
# loc[1]  返回第一行True值
# loc[1].at['金牌数']  获得行列

query 计算式条件查询

df.query(expr, inplace=False, **kwargs)

参数:
-expr:查询条件,表达式
-inplace :是否替换原数据,默认为false

query方法可用方法是基于DataFrame列的计算代数式,对于按照某列的规则进行过滤的操作。

字符串仅在列名没有任何空格时才有效。所以在应用该方法之前,列名中的空格被替换为“_”

df.query('金牌数+银牌数>15')

query(引用变量)

使用 query 提取 金牌数 大于 金牌均值的国家

gold_mean = df['金牌数'].mean()
df.query(f"金牌数>{gold_mean}")

select_dtypes筛选数据类型

select_dtypes 可以筛选数据类型的列

 筛选数值类型的列

df4.select_dtypes(include=['int64'])

 

 多类型筛选(数据类型为和浮点数)

df4.select_dtypes(include=['int64','float64'])

 逆向筛选

df4.select_dtypes(exclude=['int64','float64'])

groupby 数据分组

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=NoDefault.no_default, observed=False, dropna=True)

根据一定的规则拆分为多个组合,并应用不同的函数进行计算

df[['地区','薪资']].groupby(by='地区').mean()

# 取【地区】和【薪资】两列,按地区分组邱平均

as_index 分组取消索引

df.groupby("district",as_index=False)['salary'].mean()

sort_values 排序

计算并提取平均薪资最高的地区

两列分组,先地区求平均值,排序

df[["district","salary"]].groupby(by='district').mean().sort_values('salary',ascending=False).head(1)

频率value_counts/size

计算不同行政区(district),不同规模公司(companySize)出现的次数

pd.DataFrame(df.groupby('district')['companySize'].value_counts())
pd.DataFrame(df.groupby(["district","companySize"]).size())
# 效果一样

计数count

统计每个【区】出现的【公司】数量

等同于筛选district 计数 companySize

df.groupby("district")['companySize'].count()

分组查看

查看各组信息groups

 将数据按照 districtsalary 进行分组,并查看各分组内容

相当于筛选districtsalary

df.groupby(['district','salary']).groups

 查看指定条件信息get_group

将数据按照 districtsalary 进行分组,并查看西湖区薪资为 30000 的工作

等同于筛选【district=西湖区】【salary=30000】的值

df.groupby(["district",'salary']).get_group(("西湖区",30000))  # 接收元组

分组规则

分组筛选统计

根据【createTime 】列,计算每天不同 【district】 新增的岗位数量

等同于筛选两列计数

# createTime列提取每天,根据【createTime】、【district】日期和行政区分组计算个数
# 1
pd.DataFrame(df.groupby([df.createTime.apply(lambda x :x.day)])["district"].value_counts()).rename_axis(['发布日','行政区'])

# 2
pd.DataFrame(df.groupby([df['createTime'].apply(lambda x :x.day)])["district"].value_counts()).rename_axis(['发布日','行政区'])

分组筛选计算包含总数

计算各行政区district的企业领域industryField包含【电商】的总数

两列分组,industryField

# 统计每行中(apply)包含(contains) “电商” 字符 的数量
pd.DataFrame(df.groupby(['district'])["industryField"].apply(lambda x:x.str.contains("电商").sum()))

# 分组查看包含"电商"的行
df[["district","industryField"]].loc[df['industryField'].str.contains("电商")]

# 单列包含"电商"的次数
df[["district"]].loc[df['industryField'].str.contains("电商")].count()

 通过字符长度分组

  通过 positionName 的长度进行分组,并计算不同长度岗位名称的薪资均值

pd.DataFrame(df.set_index("positionName").groupby(len)['salary'].mean())

 通过字典进行分组

将 data1和 data3分为组1,data2和 data4分为组2,同组求和

df.groupby({'data1':1,'data2':2,'data3':1,'data4':2},axis=1).sum()

将 score 和 matchScore 的和记为总分,与 salary 列同时进行分组,并查看结果

# axis按列求和
df.groupby({'salary':'薪资','score':'总分','matchScore':'总分'}, axis=1).sum()

通过多列

计算不同【工作年限】(workYear)和 【学历】(education)之间的【薪资】均值

pd.DataFrame(df['salary'].groupby([df['workYear'],df['education']]).mean())

分组转换transform

在原数据框 df 新增一列,数值为该区的平均薪资水平

df['该区平均工资'] = df[['district','salary']].groupby('district').transform('mean')

分组聚合统计agg

df.groupby("district")['salary'].agg("mean")

分组过滤filter

提取平均【工资】小于30000的行政区的全部数据

df.groupby('district').filter(lambda x:x['salary'].mean()<30000)

数据(列表)展开explode

explode :如果数据中包含列表,使用explode进行展开,将list拆分多行

 展开A列

df5.explode('A')

展开多列

# pandas版本 >= 1.3 才可以完成
df5.explode(list('AC'))

 

聚合统计

计算指标

分组计算不同行政区,薪水的最小值,最大值和平均值

# 多个用列表 [ ]
import numpy as np
df.groupby('district')['salary'].agg([min,max,np.mean])

通过agg修改列名

修改列名和索引名

df.groupby('district').agg(最低工资=('salary','min'),最高工资=('salary','max'),平均工资=('salary','mean')).rename_axis(['行政区'])

组合计算

对不同岗位(positionName)进行分组,并统计其薪水(salary)中位数和得分(score)均值

# 用花括号 { }
df.groupby('positionName').agg({'salary':np.median,'score':np.mean})

多层统计

对不同【行政区】进行分组,并统计【薪水】的均值、中位数、方差,以及【得分】的均值

df.groupby('district').agg(
    {'salary':[np.mean, np.median, np.std],'score':np.mean})

自定义函数

聚合计算时新增一列计算最大值与平均值的差值

def myfunc(x):

    return x.max()-x.mean()

df.groupby('district').agg(最低工资=('salary', 'min'), 最高工资=(
    'salary', 'max'), 平均工资=('salary', 'mean'), 最大值与均值差值=('salary', myfunc)).rename_axis(["行政区"])

数据统计

均值、中位数、众数

df.总分.mean()  #均值
df.总分.median() # 中位数
df.总分.mode()  # 众数:是一组数据中出现次数最多的数值

agg统计部分信息

计算 总分、高端人才得分、办学层次得分的最大最小值、中位数、均值

df.agg({
        "总分": ["min", "max", "median", "mean"],
        "高端人才得分": ["min", "max", "median", "mean"],
        "办学层次得分":["min", "max", "median", "mean"]})

describe 统计完整信息

查看数值型数据的统计信息(均值、分位数等),并保留两位小数

df.describe().round(2).T

corr 相关系数统计信息

也就是相关系数矩阵,也就是每两列之间的相关性系数

df.corr() 

diff 计算行之间的差异

格式:DataFrame.diff(periods= 1,axis = 0)

参数释义
periods控制要移动的小数点,默认为1

 向上计算行之间的差异,第一行是NAN,因为之前没有要计算的值。从第二行开始,405-400=5,400-200=200

 periods=1向下计算行之间的差异

pct_change 计算差值变化率

pct_change是计算差值变化率,相当于第二个减去第一个,再除以第一个,就是第二的数据

格式:DataFrame.pct_change(periods=1, fill_method=‘pad’, limit=None, freq=None, **kwargs)

df=pd.DataFrame({"one":[1,3,5,7,9],"two":[2,4,6,8,10]})

df.pct_change()

直接填充第一个为0, 保留两位小数

df.pct_change().fillna(0).applymap(lambda x :format(x,'.2f'))

# 百分比保留两位数
df.pct_change().applymap(lambda x: format(x, '.2%'))

cunsum累加计算

cumsum 可以对数据按照指定方式进行累加,计算公式如下

 按行/列累加

df7[list('ABCD')].cumsum()   #按列累加
df7[list('ABCD')].cumsum(axis = 1)   #按行累加

 分组累加

将 df7 按照 item 按不同组对第 A 列进行累加

df7 = df7.sort_values(['item']).reset_index(drop=True)
df7['cumsum'] = df7.groupby('item')['A'].cumsum(axis=0)

 

nunique 统计指定轴上不唯一的元素数量

 按列统计(B列1为重复值,剔除重复保留一个)

df6.nunique()

 按行统计

compare 比对两表数据(比较两个数据框之间的差异)

compare 用于比较两个数据框之间的差异

输出 df9 和 df10 的差异

保留数据框keep_shape

 保留值 keep_equal

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从零自制docker-15-【实现 mydocker run -d 支持后台运行容器】

文章目录 实现目的莫名奇妙的问题对之前upper层出现root补充对run某些命令出现找不到文件或目录的原因代码效果 实现目的 docker run -d时容器在后台运行&#xff0c;而不会进入命令行交互形式 首先是需要添加-d选项然后设置当添加-d选项时候主进程不会等待子进程&#xff0c…

下跌孕线烛台如何交易?昂首平台2步盈利

下跌孕线烛台如何交易&#xff1f;其实很简单&#xff0c;昂首平台2步盈利。发现下跌孕线烛台形态&#xff0c;在上升趋势即将终结时&#xff0c;当第二根烛线完全闭合&#xff0c;并跌破低点时&#xff0c;即可卖出。 将止损设在该模式的最高点上方。 设定止盈于最近的支撑位置…

早餐店燃气安全岂能马虎?探头选择与年检必须到位

在现代都市生活中&#xff0c;早餐店作为人们日常生活中的重要一环&#xff0c;其安全性问题日益受到人们的关注。其中&#xff0c;燃气泄漏引发的火灾和爆炸事故尤为令人担忧。 因此&#xff0c;点式可燃气体报警器在早餐店中的应用显得尤为重要。 在这篇文章中&#xff0c;…

C语言操作总结

1.函数指针变量&#xff1a;定义一个函数指针变量&#xff0c;通过函数指针变量操作这个函数。 int main&#xff08;&#xff09;&#xff5b; int funOpoint(int a,int b); int (*p)(int,int);//定义一个函数指针变量 p funOpoint; //将函数地址赋值给指针变量&#xff0c…

通付盾Web3专题 | SharkTeam:Web3常见钓鱼方式分析与安全防范建议

引言 Web3钓鱼是一种针对Web3用户的常见攻击手段&#xff0c;通过各种方式窃取用户的授权、签名&#xff0c;或诱导用户进行误操作&#xff0c;目的是盗窃用户钱包中的加密资产。 近年来&#xff0c;Web3钓鱼事件不断出现&#xff0c;且发展出钓鱼即服务的黑色产业链&#xf…

ARM IHI0069F GIC architecture specification (7)

3.1 GIC逻辑组件 GICv3体系结构由一组逻辑组件组成&#xff1a; •Distributor。 •每个受支持的PE都有一个Redistributor。 •支持的每个PE都有一个CPU interface。 •中断翻译服务组件&#xff08;ITS&#xff09;&#xff0c;支持将事件翻译为LPI。 Distri…

灌装线在线粒子浮游菌监测系统安装调试

近日&#xff0c;北京中邦兴业成功完成了某企业灌装线多个点位的洁净环境在线粒子浮游菌监测系统的施工并完成了前期的调试工作。 【项目现场】 北京中邦兴业技术工程师根据客户现场实际情况&#xff0c;进行了粒子、浮游菌的点位布置&#xff0c;此系统能够实时监测生产线上的…

面向对象编程的魅力与实战:以坦克飞机大战为例

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、面向对象编程的引言 二、理解面向对象编程与面向过程编程的差异 三、创建类与对象&…

计算机的存储体系

计算机的存储分为内存和硬盘两大类。其中内存属于非持久化的存储设备&#xff0c;用于临时存储数据&#xff0c;设备掉电后数据会丢失&#xff1b;硬盘属于持久化的存储设备&#xff0c;设备掉电后数据不会丢失。 实际上在计算机领域存储的种类是非常多的&#xff0c;业界有时…

猫咪掉毛严重怎么办?小米、希喂、霍尼韦尔宠物空气净化器测评

吸猫成瘾&#xff0c;养猫“致贫”&#xff1f;在当今社会&#xff0c;养猫已成为众多年轻人的一个追捧的事情。乖巧又可爱&#xff0c;下班回到家撸一把猫已经成为年轻人的日常。但是猫咪可爱也不影响它的各种养猫伴生的问题&#xff01;无论是漂浮的浮毛、飘散的皮屑还是偶发…

线程池(详细)

Java中的线程池是运用场景最多的并发框架&#xff0c;几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中&#xff0c;合理地使用线程池能够带来3个好处。 第一&#xff1a;降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二&…

数据安全革命:Web3带来的隐私保护创新

随着数字化时代的发展&#xff0c;数据安全和隐私保护问题日益突出。传统的中心化数据存储和管理方式已经无法满足日益增长的数据安全需求&#xff0c;而Web3作为下一代互联网的新兴力量&#xff0c;正以其去中心化、加密安全的特性&#xff0c;引领着一场数据安全革命。本文将…

【MySQL02】【 InnoDB 记录存储结构】

文章目录 一、前言二、InnoDB 行格式1. COMPACT 行格式1.1 记录的额外信息1.2 记录的真实数据1.3 综上 2. REDUNDANT 行格式2.1 字段长度偏移列表2.2 记录头信息 3. DYNAMIC 行格式和 COMPPESED 行格式 三、InnoDB 数据页结构1. File Header (文件头部)2. Page Header (页面头部…

vue3+vite解决项目打包后本地图片等资源找不到的问题

1.在vite.config.js里面做如下配置 import { defineConfig } from vite import vue from vitejs/plugin-vueexport default defineConfig({base: ./, // 打包的静态资源引用路径plugins: [vue()], // 放插件用的resolve: {alias: {: /src // 配置/提示符}}, })上述配置主要就是…

Samtec技术漫谈 | 电动自行车中的传感器和信号传输技术

【摘要/前言】 电动自行车&#xff0c;大家熟悉吗&#xff1f; 今天的话题似乎是可以唤起大家心底骑车的美好回忆&#xff0c;我们也曾骑车探索过大自然和社区&#xff0c;自行车也是我们曾经不可或缺的便捷交通工具。 怀旧思潮的影响&#xff0c;加持科技的进步&#xff0c…

备忘录可以统计字数吗?备忘录里在哪查看字数?

在这个信息爆炸的时代&#xff0c;很多人喜欢使用备忘录app来记录生活中的点点滴滴。备忘录不仅可以帮助我们记事、安排日程&#xff0c;还能提醒我们完成各种任务&#xff0c;是我们日常生活中不可或缺的小助手。 然而&#xff0c;在使用备忘录时&#xff0c;有时我们会遇到需…

软件工程基础

软件工程基础 甘特图&#xff08;Gantt Chart&#xff09; 关键字&#xff1a;开始、结束时间&#xff0c;并行关系 皮特图&#xff08;PERT Chart&#xff09; 关键字&#xff1a;开始、结束时间&#xff0c;依赖关系 黑盒测试 黑盒测试是一种软件测试方法&#xff0c;它专…

视频号小店应该怎么操作呢?不了解的小伙伴快来看!

大家好&#xff0c;我是电商小V 普通人想利用视频号小店赚钱&#xff0c;奈何自己不会直播&#xff0c;不会拍视频&#xff0c;那么普通人应该怎么在视频号中赚钱呢&#xff1f;今天咱们就来详细的说一下&#xff0c; 其实不直播&#xff0c;不拍视频也是可以在视频号上面卖货赚…

学校智慧公厕的有线与无线方案,怎样去选择才合适

在当今数字化时代&#xff0c;学校也在积极引入智慧公厕系统&#xff0c;以提升校园环境的舒适度和管理效率。然而&#xff0c;面对智慧公厕的有线与无线方案&#xff0c;如何做出合适的选择成为了一个关键问题。 一、智慧公厕无线方案优势 首先来看无线方案。如前文所述&#…

[SMB协议][问题][解决方法]电视访问共享视频 | 该共享设备尚未共享任何文件 | 音频格式不支持 | 播放卡顿

1.该共享设备尚未共享任何文件 | 一些智能电视&#xff08;比如价格比较美丽&#xff0c;或者比较老的&#xff09;兼容性可能较差&#xff0c; 1. 一般而言win 10默认关闭smb 1.0默认开启着smb 2.0&#xff0c;smb 1.0不安全&#xff0c;比较过时的技术&#xff0c;且微软建议…