运行环境: VS Code1.5.4 Python3.7.8
import pandas as pd
import xlwt
data=pd.read_csv('influence_data.csv',encoding='unicode_escape')
df_group = data.groupby(by = 'follower_main_genre')
Cata_list = list(df_group.groups.keys())
df = pd.DataFrame(index = Cata_list,columns = Cata_list)
df.loc[:,:] = 0
for i in range(data.shape[0]):
df.loc[data.iat[i,6], data.iat[i,2]] += 1
df.to_excel("genre_influence.xls")
import pandas as pd
import xlwt
data=pd.read_csv('influence_data.csv',encoding='unicode_escape')
df_group1 = data.groupby(by = 'influencer_name')
df_group2 = data.groupby(by = 'follower_name')
Cata_list1 = list(df_group1.groups.keys())
Cata_list2 = list(df_group2.groups.keys())
df_group = list(set(Cata_list1 + Cata_list2))
df = pd.DataFrame(index = df_group,columns = [1])
df.loc[:,:] = 0
for i in range(data.shape[0]):
df.loc[data.iat[i,1], 1] += 1
df.to_excel("artist_influence.xls")
import pandas as pd
import xlwt
data=pd.read_csv('influence_data.csv',encoding='unicode_escape')
df_group = data.groupby(by = 'influencer_id')
Cata_list = list(df_group.groups.keys())
df = pd.DataFrame(index = Cata_list,columns = [-60,-50,-40,-30,-20,-10,0,10,20,30,40,50,60,70,80])
df.loc[:,:] = 0
for i in range(data.shape[0]):
df.loc[data.iat[i,0],(data.iat[i,7]-data.iat[i,3])] += 1
df.to_excel("active_year_difference.xls")
第二问的数据处理比较简单,用 SPSS
软件做的,分析主要用到了PCA。
import pandas as pd
data1=pd.read_csv('duplicated1.csv',encoding='unicode_escape')
data2=pd.read_csv('duplicated2.csv',encoding='unicode_escape')
data1=data1.append(data2)
norepeat_df = data1.drop_duplicates(subset=['11'], keep='first')
norepeat_df.to_csv("norepeat.csv",index=False)
import pandas as pd
import xlwt
data=pd.read_csv('norepeat.csv',encoding='unicode_escape')
df_group1 = data.groupby(by = 'year')
df_group2 = data.groupby(by = 'genre')
Cata_list1 = list(df_group1.groups.keys())
Cata_list2 = list(df_group2.groups.keys())
df = pd.DataFrame(index = Cata_list2,columns = Cata_list1)
df.loc[:,:] = 0
for i in range(data.shape[0]):
df.loc[data.iat[i,1],data.iat[i,2]] += 1
df.to_excel("year_genre.xls")
主要用 SPSS
进行处理,算欧氏距离得出近似值矩阵。
获得文件 data_by_artist.csv
中所有艺术家的活跃年份
import pandas as pd
import xlwt
data=pd.read_csv('influence_data.csv',encoding='unicode_escape')
data_new=pd.read_csv('data_by_artist.csv',encoding='unicode_escape')
Cata_list = list(data_new['artist_id'])
Column_list = ['year']
list0=['none' for x in range(len(Cata_list))]
df = pd.DataFrame(list0,index = Cata_list,columns = Column_list,dtype=str)
for i in range(len(data)):
df.loc[data.iat[i,0],'year']=data.iat[i,3]
for i in range(len(data)):
df.loc[data.iat[i,4],'year']=data.iat[i,7]
df.to_excel("artist_year.xls")
获得文件 data_by_artist.csv
中所有艺术家的类型
import pandas as pd
import xlwt
data=pd.read_csv('influence_data.csv',encoding='unicode_escape')
data_new=pd.read_csv('data_by_artist.csv',encoding='unicode_escape')
Cata_list = list(data_new['artist_id'])
Column_list = ['genre']
list0=['none' for x in range(len(Cata_list))]
df = pd.DataFrame(list0,index = Cata_list,columns = Column_list,dtype=str)
for i in range(len(data)):
df.loc[data.iat[i,0],'genre']=data.iat[i,2]
for i in range(len(data)):
df.loc[data.iat[i,4],'genre']=data.iat[i,6]
df.to_excel("artist_genre.xls")
手动添加到原来 data_by_artist.csv
文件中
删除没有类别或没有活动年份的艺术家
[En]
Delete artists with no category or no active years
import pandas as pd
import xlwt
data=pd.read_csv('data_by_artist.csv',encoding='unicode_escape')
index = data[data.genre == 'none'].index.tolist()
data=data.drop(index)
index = data[data.year == 'none'].index.tolist()
data=data.drop(index)
data.to_csv("data_by_artist_new.csv",index=False)
import pandas as pd
import xlwt
data=pd.read_csv('data_by_artist_new.csv',encoding='unicode_escape')
Cata_list = list(data.groupby(by = 'genre').groups.keys())
index_list = list(data.groupby(by = 'year').groups.keys())
Column_list = data.columns.values[4:15]
AvantGarde = pd.DataFrame(index = index_list,columns = Column_list)
Blues = pd.DataFrame(index = index_list,columns = Column_list)
Childrens = pd.DataFrame(index = index_list,columns = Column_list)
Classical = pd.DataFrame(index = index_list,columns = Column_list)
ComedySpoken = pd.DataFrame(index = index_list,columns = Column_list)
Country = pd.DataFrame(index = index_list,columns = Column_list)
EasyListening = pd.DataFrame(index = index_list,columns = Column_list)
Electronic = pd.DataFrame(index = index_list,columns = Column_list)
Folk = pd.DataFrame(index = index_list,columns = Column_list)
International = pd.DataFrame(index = index_list,columns = Column_list)
Jazz = pd.DataFrame(index = index_list,columns = Column_list)
Latin = pd.DataFrame(index = index_list,columns = Column_list)
NewAge = pd.DataFrame(index = index_list,columns = Column_list)
PopRock = pd.DataFrame(index = index_list,columns = Column_list)
RB = pd.DataFrame(index = index_list,columns = Column_list)
Reggae = pd.DataFrame(index = index_list,columns = Column_list)
Religious = pd.DataFrame(index = index_list,columns = Column_list)
StageScreen = pd.DataFrame(index = index_list,columns = Column_list)
Unknown = pd.DataFrame(index = index_list,columns = Column_list)
Vocal = pd.DataFrame(index = index_list,columns = Column_list)
AvantGarde.loc[:,:] = 0
Blues.loc[:,:] = 0
Childrens.loc[:,:] = 0
Classical.loc[:,:] = 0
ComedySpoken.loc[:,:] = 0
Country.loc[:,:] = 0
EasyListening.loc[:,:] = 0
Electronic.loc[:,:] = 0
Folk.loc[:,:] = 0
International.loc[:,:] = 0
Jazz.loc[:,:] = 0
Latin.loc[:,:] = 0
NewAge.loc[:,:] = 0
PopRock.loc[:,:] = 0
RB.loc[:,:] = 0
Reggae.loc[:,:] = 0
Religious.loc[:,:] = 0
StageScreen.loc[:,:] = 0
Unknown.loc[:,:] = 0
Vocal.loc[:,:] = 0
for i in range(len(data)):
if data.iat[i,2]=='Avant-Garde':
for j in range(4,15):
AvantGarde.loc[data.iat[i,1],Column_list[j-4]]=AvantGarde.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Blues':
for j in range(4,15):
Blues.loc[data.iat[i,1],Column_list[j-4]]=Blues.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=="Children's":
for j in range(4,15):
Childrens.loc[data.iat[i,1],Column_list[j-4]]=Childrens.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Classical':
for j in range(4,15):
Classical.loc[data.iat[i,1],Column_list[j-4]]=Classical.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Comedy/Spoken':
for j in range(4,15):
ComedySpoken.loc[data.iat[i,1],Column_list[j-4]]=ComedySpoken.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Country':
for j in range(4,15):
Country.loc[data.iat[i,1],Column_list[j-4]]=Country.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Easy Listening':
for j in range(4,15):
EasyListening.loc[data.iat[i,1],Column_list[j-4]]=EasyListening.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Electronic':
for j in range(4,15):
Electronic.loc[data.iat[i,1],Column_list[j-4]]=Electronic.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Folk':
for j in range(4,15):
Folk.loc[data.iat[i,1],Column_list[j-4]]=Folk.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='International':
for j in range(4,15):
International.loc[data.iat[i,1],Column_list[j-4]]=International.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Jazz':
for j in range(4,15):
Jazz.loc[data.iat[i,1],Column_list[j-4]]=Jazz.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Latin':
for j in range(4,15):
Latin.loc[data.iat[i,1],Column_list[j-4]]=Latin.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='New Age':
for j in range(4,15):
NewAge.loc[data.iat[i,1],Column_list[j-4]]=NewAge.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Pop/Rock':
for j in range(4,15):
PopRock.loc[data.iat[i,1],Column_list[j-4]]=PopRock.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='R&B;':
for j in range(4,15):
RB.loc[data.iat[i,1],Column_list[j-4]]=RB.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Reggae':
for j in range(4,15):
Reggae.loc[data.iat[i,1],Column_list[j-4]]=Reggae.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Religious':
for j in range(4,15):
Religious.loc[data.iat[i,1],Column_list[j-4]]=Religious.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Stage & Screen':
for j in range(4,15):
StageScreen.loc[data.iat[i,1],Column_list[j-4]]=StageScreen.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Unknown':
for j in range(4,15):
Unknown.loc[data.iat[i,1],Column_list[j-4]]=Unknown.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
if data.iat[i,2]=='Vocal':
for j in range(4,15):
Vocal.loc[data.iat[i,1],Column_list[j-4]]=Vocal.loc[data.iat[i,1],Column_list[j-4]]+data.iat[i,j]
AvantGarde.to_excel("AvantGarde.xls")
Blues.to_excel("Blues.xls")
Childrens.to_excel("Childrens.xls")
Classical.to_excel("Classical.xls")
ComedySpoken.to_excel("ComedySpoken.xls")
Country.to_excel("Country.xls")
EasyListening.to_excel("EasyListening.xls")
Electronic.to_excel("Electronic.xls")
Folk.to_excel("Folk.xls")
International.to_excel("International.xls")
Jazz.to_excel("Jazz.xls")
Latin.to_excel("Latin.xls")
NewAge.to_excel("NewAge.xls")
PopRock.to_excel("PopRock.xls")
RB.to_excel("RB.xls")
Reggae.to_excel("Reggae.xls")
Religious.to_excel("Religious.xls")
StageScreen.to_excel("StageScreen.xls")
Unknown.to_excel("Unknown.xls")
Vocal.to_excel("Vocal.xls")
对第五问最后得到的那 20
个表格进行了归一化处理,手动用 Excel
处理的,处理完我整个人都要没了…
口头建模,使用一些先前处理过的数据。
[En]
Oral modeling, using some previously processed data.
首先,写这篇博客的目的是整理美世公司系统编写的代码,以防止自己使用和忘记它(因为我总是这样做)。如果代码有任何问题,我希望老板们能给我建议。
[En]
At first, the purpose of writing this blog is to sort out the code that Mercer has written systematically, so as to prevent myself from using it and forgetting it (because I always do.) if there is anything wrong with the code, I hope the bosses will give me advice.
Original: https://blog.csdn.net/Panda2412/article/details/114956051
Author: LQW_SCUT
Title: 2021美赛D题之数据处理
相关阅读
Title: 空调行业如何破局?TCL空调双十一战绩可窥见端倪

来源 | 螳螂观察
作者|佘凯文
11月7日立冬,正式拉开冬季的帷幕,但除了北方的个别城市,全国绝大部分地区仍能感受到阳光的和煦。相比之下,在受到整体大环境反复施压后,国内某些行业所经历的”严寒”,比”真正的冬天”更早到来。
据此前星图数据发布的2022年双十一数据来看,从10月31日-11月3日监测的主要B2C电商平台销售额整体为3341亿元,而这一数字甚至不及往年一天的销售额。
当然也有行业表现是在意料之外,比如家电业,行业整体在上半年遇冷,却在双十一迎来强势爆发,其中像空调品类就迎来了一次难得喘息之机。
市场双降,空调业寒冬已至
家电行业迎来寒冬,早在2019年就有所体现,去年虽然国内市场迎来了短暂的提升,但今年上半年的市场成绩又让所有期望化为泡影。
据AVC数据显示,中国家电市场销售规模3389亿元,同比下滑9.3%,市场规模相比于疫情最为严重的2020年上半年的市场规模仅稍高99亿元。
空调行业则是”重灾区”,同样来自AVC的数据显示,2022年上半年空调全渠道零售量2154万台,同比下滑20.9%;零售额727亿元,同比下降15.3%,分渠道来看,线下和线上也分别出现了10%和20%的跌幅,用行业人士的话来说,”当前空调市场的成绩可谓触目惊心。”
空调市场之所以出现如此规模的下跌,其实伏笔早已埋下。
多年来,空调产品一直处在”价格战”的阴霾之中,但去年以来受铜、铝等原材料持续18个月涨价,使得空调成本大幅提高,产品售价受此影响也出现一定上涨,然而消费市场已经习惯了”低价空调”,面对持续增长的售价,消费者明显提不起太多兴趣。
第二则与外部环境有关。这些年房地产行业的持续低迷,数据显示2022年上半年全国300城住宅用地供求规模均缩量明显,推出面积和成交面积同比分别下降44.3%和55.6%,这使得家电消费需求同样萎缩。

最后,则是在于消费者对于当前空调产品的购、换意愿不强烈,一方面是需求饱和;另一方面则是产品创新未能打动消费者。这些年,在物联网概念的推动下,空调也迈向了智能化,但仅停留在控制终端的改变上,使得消费者对于产品创新没有深层次感知。
“不坏不换”成为整个家电行业的”老大难”。
从品牌维度来看,艰难的大环境使赛道玩家不得不抛出自己的解决方案,像美的发力渠道改革,去年开始大力推广起了”前置仓”模式,学起了”生鲜玩法”。
8月,格力空调更是被爆出”二选一”的负面。这一”经销商事件”最终也闹得沸沸扬扬。
在行业人士眼中,这或是格力、美的等品牌,面对严峻的大环境变迁都开始滋生出无力感。当然,行业中并不是谁都在愁眉苦脸,今年双十一的成绩算是为空调行业带去了短暂修整期,也成为各大品牌未来走势的一份鉴定书。
TCL空调双十一战报的背后,再显创新重要性
双十一数据显示,在10月31日20:00-24:00双十一开门红期间,TCL空调全渠道销售额同比增长394%,28小时京东平台成交金额同比增长超100%,而新风空调更是成为全渠道销售增速冠军。
此外,据京东家电竞速榜显示,TCL新风空调小蓝翼Ⅱ系列产品斩获”双11″京东家电空调服务口碑冠军,并在”双11″京东新风空调TOP10榜单中占据三席成为上榜数量冠军。


而整个双十一期间,TCL新风空调拿下电商全渠道销售量增速冠军、2匹新风空调挂机电商全渠道销售额&销售量冠军;与此同时,它还登顶双十一京东自营新风空调销额排行榜NO.1。
之所以TCL空调能取得如此成绩,则与创新有着密切关系。
在经历多年来快速扩张后,存量时代的空调行业早已同质化严重,打造差异化竞争点成为破局的唯一方向。当然所谓的差异化打造,也不能异想天开,需要基于空调产品的基本属性,围绕空调产品的实际痛点展开。

在不少业内人士看来,今年中国空调行业或将迎来拐点。原因在于,随着居民消费水平的提高,仅有制冷制热功能的传统空调早已无法满足用户需求,带有健康属性的新风空调就受到消费者密切关注,近三年成长迅速,成为空调行业一大风口。相比2021年,今年前三季度新风空调双线渠道额份额大幅增长。

在行业新拐点来临时,TCL空调拿出了自己的”新招”——TCL新风空调小蓝翼II应运而生。之所以叫”小蓝翼”主要是因为在它的右上角,有一个随新风启动而浮起的挡板结构,内部还有蓝光发出,形似天使之翼,所以命名为小蓝翼。
“小蓝翼”如何满足消费者的智慧健康需求?体现在三个方面,其一相比其他新风空调,”小蓝翼”有着巨大的新风量,例如小蓝翼Ⅱ系列,不用二次打墙孔拥有着每小时60立方米的大新风量,远超国家标准,超大的新风量让它可实现高效换新风,36分钟便能整屋空气换新。
其二,为了让用户感知到健康的存在,TCL新风空调小蓝翼II还开创了新风功能显性化,通过空气质量显示环用户能实时查看空气质量,让好空气看得见。

其三,在健康保障方面TCL新风空调小蓝翼II配备了”多重净化滤网”,最大程度保障用户健康,多重滤网包括:过滤粉尘颗粒物的粗筛滤网、抗病毒抗菌的银离子抗菌网、高效过滤PM2.5的HEPA滤网、再一次过滤颗粒灰尘的高密度滤网。经过它们的联手作业,PM2.5去除率达到99.1%,细菌抑制率99%,病毒抵抗率97.2%。
此外,现阶段TCL空调已拥有五项”国际领先”技术,分别是基于空气品质智能控制的大新风量低噪音技术、新型高效变频技术、变频节能及电量可视化技术、智慧柔风技术、室外60℃高温强冷技术。
所以,即便当前空调行业玩家普遍投入到新风赛道,为什么最终还是TCL空调脱颖而出?创新便是答案。也正因为这些创新,使得TCL空调斩获”双11″京东预售榜”空调服务口碑榜第一”和”新风空调上榜数量冠军”,这是TCL空调冲破行业严冬的答案,但也仅仅是其中之一。
让”价格”变成”价值”,TCL空调的全面聚焦之路
在当前中国”加快建设制造强国”背景下,空调行业也要由制造大国向制造强国迈进,而在这一进程中TCL空调的路径或许值得借鉴。
首先从技术方面来看,现阶段国内许多空调品牌特别是一些后起的互联网品牌,都是代工为主,自己手上并没有掌握核心技术。再看TCL空调,不仅具备具备完整的技术自主权,在技术研发领域也有着傲人的表现。
据悉,截止今年10月TCL空调的技术研发团队超过了1000人,拥有专利3806件,其中发明专利891件。
其次则体现在模式上,虽然近两年随着直播电商模式的兴起,为家电玩家带去更加多元化的渠道选择,但绝大多数家电品牌的营销模式还是偏传统,即依旧是线上电商平台加线下实体门店的方式。
这种销售模式在需求旺盛之时当然没有问题,但现如今空调业正处于非常时期,常规模式显然不够。为了进一步激起市场的消费欲望,TCL空调先行业一步走向了”场景化”。积极布局AIxIoT全场景智慧生活,先后研发了多款场景空调,像第一代TCL小蓝翼又被成为”卧室新风空调”,而深耕场景化,本质上是对用户需求的又一次满足。
最后战略上,TCL空调则展现出了全面聚焦的决心。自2021年3月发布第一款大新风量新风空调小蓝翼后,TCL空调全面聚焦新风赛道,坚持以技术创新,加大研发投入,迅速扩大产品阵容。
同年11月新风空调小蓝翼Ⅱ系列产品的推出,实现新风空调快速升级。今年2月又率先于行业提出”无新风、不空调”的战略,这也展现出TCL空调就是看准新风趋势的引领者姿态。
前后仅用了不到一年的时间,便形成行业最齐全的新风产品系列。 如今TCL空调已成为国内新风领域不折不扣的”头号玩家”,而”小蓝翼”在国内空调市场也已经成为新风空调的一个代名词。

往小了说,这是TCL空调自己的一次涅槃,用科技创新的方式实现了”后来居上”;往大了看,这其实也是行业的一次革新, 在TCL空调的领头下持续通过技术创新为产品增值,国内空调行业已经从”价格”导向开始向”价值”导向转变,也正让”价值”重新成为消费者选择的第一要素。
总结
对于TCL空调而言,双十一的成绩只是一个开始,在占领新风赛道这片新阵地后,使TCL空调有更多的”外探”空间,而新增价值也使空调产品有了更多想象空间,一场有关空调行业的深层次变革或许就在不远处。
*本文图片均来源于网络
此内容为【螳螂观察】原创,
仅代表个人观点,未经授权,任何人不得以任何方式使用,包括转载、摘编、复制或建立镜像。
部分图片来自网络,且未核实版权归属,不作为商业用途,如有侵犯,请作者与我们联系。
•泛财经新媒体。
•微信十万+曝文《”维密秀”被谁杀死了?》等的创作者;
•重点关注:新商业(含直播、短视频等大文娱)、新营销、新消费(含新零售)、上市公司、新金融(含金融科技)、区块链等领域。
Original: https://blog.csdn.net/Xiaoxiang_Lee/article/details/127826397
Author: 螳螂观察
Title: 空调行业如何破局?TCL空调双十一战绩可窥见端倪
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/230452/
转载文章受原作者版权保护。转载请注明原作者出处!