DataFrame(4):DataFrame元素的获取方式

人工智能92

1、学习DataFrame元素获取,需要掌握以下几个需求

  • 访问一列 或 多列
  • 访问一行 或 多行
  • 访问某个值
  • 访问某几行中的某几列
  • 访问某几列中的某几行

2、构造一个DataFrame

df = pd.DataFrame(np.random.randint(70,100,(4,5)),
                  index=["地区1", "地区2", "地区3","地区4"],
                  columns=["武汉","天门", "黄冈","孝感","广水"])
display(df)

结果如下:
DataFrame(4):DataFrame元素的获取方式

注意:不管是单独获取到一行、还是一列,得到的都是一个Series。不管是单独获取到多行、还是多列,得到的都是一个DataFrame。

# 获取一列
x = df["广水"]
display(x)
display(type(x))

# 获取一行
y = df.loc["地区1"]
display(y)
display(type(y))

结果如下:
DataFrame(4):DataFrame元素的获取方式

3、访问一列或多列:传入单个标签或标签数组

df = pd.DataFrame(np.random.randint(70,100,(4,5)),
                  index=["地区1", "地区2", "地区3","地区4"],
                  columns=["武汉","天门", "黄冈","孝感","广水"])
display(df)

# 访问一列
x = df["武汉"]
display(x)

# 访问多列
y = df[["武汉","天门"]]
display(y)

结果如下:
DataFrame(4):DataFrame元素的获取方式

4、访问一行或者多行:loc中传入标签索引、iloc中传入位置索引、切片方式、布尔数组方式

① loc标签索引

df = pd.DataFrame(np.random.randint(70,100,(4,5)),
                  index=["地区1", "地区2", "地区3","地区4"],
                  columns=["武汉","天门", "黄冈","孝感","广水"])
display(df)

x1 = df.loc["地区1"]
display(x1)

x2 = df.loc[["地区1","地区2"]]
display(x2)

结果如下:
DataFrame(4):DataFrame元素的获取方式

特别说明:"访问行"唯独不能使用类似df[0],df[[0,1]],df["地区1"],df[["地区1","地区2"]]这样的方式。

② iloc位置索引

df = pd.DataFrame(np.random.randint(70,100,(4,5)),
                  index=["地区1", "地区2", "地区3","地区4"],
                  columns=["武汉","天门", "黄冈","孝感","广水"])
display(df)

x3 = df.iloc[0]
display(x3)

x4 = df.iloc[[0,3]]
display(x4)

结果如下:
DataFrame(4):DataFrame元素的获取方式

③ 切片方式:这种方式容易忽略,也容易弄错

df[0:2]
df[1:]

结果如下:
DataFrame(4):DataFrame元素的获取方式

④ 布尔数组方式

df = pd.DataFrame(np.random.randint(70,100,(4,5)),
                  index=["地区1", "地区2", "地区3","地区4"],
                  columns=["武汉","天门", "黄冈","孝感","广水"])
display(df)

y = df[df["武汉"] >= 80]
display(y)

结果如下:
DataFrame(4):DataFrame元素的获取方式

5、访问某个值

如果说要访问下面数据框DataFrame中的95,应该怎么做呢?DataFrame(4):DataFrame元素的获取方式

① 先访问"地区3"这一行,再访问95这个数据

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

df.loc["地区3"]
df.loc["地区3"].loc["黄冈"]
结果如下:

DataFrame(4):DataFrame元素的获取方式

② 先访问"黄冈"这一列,再访问95这个数据

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

df["黄冈"]
df["黄冈"].loc["地区3"]

结果如下:
DataFrame(4):DataFrame元素的获取方式

③ 向loc中传入数据的标签坐标、向iloc中传入数据的位置坐标(最常用)

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

df.loc["地区3","黄冈"]
df.iloc[2,2]

结果如下:
DataFrame(4):DataFrame元素的获取方式

④ 向at中传入数据的标签坐标、向iat中传入数据的位置坐标

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

df.at["地区3","黄冈"]
df.iat[2,2]

结果如下:
DataFrame(4):DataFrame元素的获取方式

6、访问某几行中的某几列

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

# 先获取行,再获取列
df.loc[["地区1","地区3"]][["武汉","广水"]]

结果如下:
DataFrame(4):DataFrame元素的获取方式

7、访问某几列中的某几行

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

# 先获取列,再获取行
df[["武汉","广水"]].loc[["地区1","地区3"]]

结果如下:
DataFrame(4):DataFrame元素的获取方式

8、获取多行多列常用的一种方式:iloc+切片、loc+标签数组

① 获取多行多列:iloc+切片

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

x = df.iloc[:3,:]
display(x)

结果如下:
DataFrame(4):DataFrame元素的获取方式

② 获取多行多列:loc+标签数组

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

x = df.loc[["地区1","地区3"],['武汉','天门','黄冈','孝感','广水']]
display(x)

结果如下:
DataFrame(4):DataFrame元素的获取方式

9、获取多行多列常用的第二种方式:iloc+切片+位置数组、loc+切片+标签数组

① 获取多行多列:iloc+切片+位置数组

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

x = df.iloc[1:,[1,4]]
display(x)

y = df.iloc[[1,3],1:]
display(y)

结果如下:
DataFrame(4):DataFrame元素的获取方式

② 获取多行多列:loc+切片+标签数组

df = pd.DataFrame({"武汉":[78,99,81,77],
                   "天门":[74,97,96,97],
                   "黄冈":[77,80,95,84],
                   "孝感":[92,84,75,80],
                   "广水":[85,85,72,74]},
                  index=["地区1", "地区2", "地区3","地区4"]
)
display(df)

x = df.loc["地区1":,["武汉","广水"]]
display(x)

y = df.loc[["地区1","地区3"],"天门":]
display(y)

结果如下:
DataFrame(4):DataFrame元素的获取方式

Original: https://www.cnblogs.com/math98/p/13591374.html
Author: math98
Title: DataFrame(4):DataFrame元素的获取方式



相关阅读

Title: Magic Data入选亿欧智库2022中国语音交互车端应用产业图谱

Magic Data入选亿欧智库2022中国语音交互车端应用产业图谱

以下文章来源于亿欧网 ,作者李浩诚

DataFrame(4):DataFrame元素的获取方式

2022年3月18日,亿欧智库正式对外发布了《2022中国汽车智能化功能模块系列研究-语音交互篇》报告。

2021年至今,智能化已然成为当前汽车行业的核心发展方向。经过长达一年的智能化发展,语音交互功能成为汽车座舱内最具代表性的智能化功能模块之一。主机厂语音交互业务的发展模式与供应商的软硬实力成为业内关注的热点话题。

2022年3月18日,亿欧智库正式对外发布了《2022中国汽车智能化功能模块系列研究-语音交互篇》报告,报告的研究内容聚焦于语音交互功能在汽车领域的应用。报告对中国语音交互车端应用的技术原理、市场现状、标杆企业等进行全方面的拆解分析,并对当前主流供应商与主机厂的产品进行多维度研究与解读。

市场规模不断增长,产业边界趋于模糊

中国语音交互车端应用市场正在呈现出多元化的发展趋势,本地+云端、ASR、NLP、TTS、多元化内容及服务生态都在持续快速升级。亿欧智库测算,2021年中国语音乘用车交互车端应用的市场规模为22.2亿元,2022年预计可以到达25.1亿元,2019年-2022年复合增长率达到20.8%。

DataFrame(4):DataFrame元素的获取方式

中国语音交互车端应用产业链可分为上游:数据/语料/标注供应商、语音芯片/模块供应商、云服务及架构供应商以及车企;中游:语音处理引擎及应用供应商、平台服务与整合供应商以及下游车企。

随着语音交品产品智能化与差异化的发展,不同供应商之间,产品与业务也逐渐产生交集,传统自上而下的单一供应关系也逐渐转变为合作与共建关系。车企作为产业链下游与需求方,在自研发展过程中,同样担当了供给方的角色。

智能语音处理引擎及应用供应商位于产业链中游,作为上游的需求方,业务范围逐渐向上延展;作为下游的供应方,合作模式逐渐向下深入。在产业链中游企业的业务发展向上延展与向下深入过程中,产业链上中下游的边界趋于模糊,产业竞争结构正在发生重组。

DataFrame(4):DataFrame元素的获取方式

语音交互车端应用行业持续多元化发展,企业迎来发展"风口"

语音交互业务目前对于功能的更新与迭代要求比较高,主机厂与供应商的发展模式更加开放与多元,因此传统的车企与供应商单一项目制供应关系不适用于当前的语音交互业务。取而代之的新型合作模式需要供应商与车企之间达成长期战略合作。

对于主机厂而言,在汽车智能化发展的大背景下,应该快速抓住语音交互的发展黄金期,打造自身产品的核心竞争力;同时对经过市场检验的业务发展模式进行复制与效仿,极大缩短发展周期。

对于供应商而言,目前正处于扩充市场份额的最佳时段。供应商在提升自身底层技术的同时,需要针对不同量级客户提供定制化且具有性价比的解决方案,力争与主机厂形成良好的合作契合度,从而达成长久的战略合作关系。

智能汽车行业AI数据解决方案 Magic Data 赋能AI汽车产业落地

对于当前"人机共驾"阶段,语音交互技术的独特优势得以显现——帮助驾驶者降低对车内设备的手动操作依赖,增加驾驶安全性。语音交互功能已经成为汽车座舱内最具代表性的智能化功能模块之一。

DataFrame(4):DataFrame元素的获取方式

标注平台:支持舱内/舱外场景沉浸式标注

随着语音交互功能作为汽车座舱智能化的标志性代表,与车内多种应用相结合,成为座舱生态构建的核心功能,汽车用户对于语音交互的需求与兴趣也逐渐高涨。

近年来,Magic Data不断尝试与传统车企、造车新势力以及自动驾驶技术企业合作,深入了解训练数据集的使用逻辑及客户需求痛点。通过Magic Data 多模态数据处理系统Annotator®6.0及自有数据集,为语音交互功能的智能化与差异化发展提供多维度的数据支撑,持续加速语音交互在驾乘场景当中的应用与落地。

DataFrame(4):DataFrame元素的获取方式

点击查看:PC端试用链接

MD自有数据集:智能座舱场景应用

DataFrame(4):DataFrame元素的获取方式

点击查看:中文导航女声TTS数据集

DataFrame(4):DataFrame元素的获取方式

点击查看:粤语车载音频数据集

DataFrame(4):DataFrame元素的获取方式

点击查看:车载噪音音频数据集

DataFrame(4):DataFrame元素的获取方式

更多Magic Data数据集样例: 样例下载

Magic Data 将持续发力智能汽车产业与智能汽车各细分智能化功能模块的发展,通过提供智能汽车行业AI数据解决方案,赋能AI汽车产业落地。

Original: https://blog.csdn.net/weixin_47718443/article/details/123735091
Author: Magic Data
Title: Magic Data入选亿欧智库2022中国语音交互车端应用产业图谱