首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从pandas中的多级DF中检索非空值,并组合多个列

在pandas中,可以使用notnull()函数来检索多级DataFrame中的非空值,并使用apply()函数结合join()函数来组合多个列。

首先,我们需要导入pandas库并创建一个多级DataFrame示例:

代码语言:txt
复制
import pandas as pd

# 创建多级DataFrame示例
data = {'A': {('row1', 'subrow1'): 1, ('row1', 'subrow2'): 2, ('row2', 'subrow1'): None},
        'B': {('row1', 'subrow1'): None, ('row1', 'subrow2'): 4, ('row2', 'subrow1'): 5},
        'C': {('row1', 'subrow1'): 6, ('row1', 'subrow2'): None, ('row2', 'subrow1'): 8}}

df = pd.DataFrame(data)

接下来,我们可以使用notnull()函数检索非空值,并使用apply()函数结合join()函数来组合多个列:

代码语言:txt
复制
# 检索非空值并组合多个列
result = df[df.apply(lambda x: x.notnull().all(), axis=1)].apply(lambda x: '-'.join(x.dropna().astype(str)), axis=1)

在上述代码中,df.apply(lambda x: x.notnull().all(), axis=1)用于检索每一行是否所有列都非空,返回一个布尔Series。然后,df[df.apply(lambda x: x.notnull().all(), axis=1)]用于筛选出所有列都非空的行。

接下来,x.dropna().astype(str)用于删除空值并将剩余的非空值转换为字符串类型。然后,'-'.join(x.dropna().astype(str))用于将剩余的非空值以连接符“-”组合起来。

最后,df[df.apply(lambda x: x.notnull().all(), axis=1)].apply(lambda x: '-'.join(x.dropna().astype(str)), axis=1)将每一行的组合结果作为新的一列添加到结果中。

完整的代码如下所示:

代码语言:txt
复制
import pandas as pd

# 创建多级DataFrame示例
data = {'A': {('row1', 'subrow1'): 1, ('row1', 'subrow2'): 2, ('row2', 'subrow1'): None},
        'B': {('row1', 'subrow1'): None, ('row1', 'subrow2'): 4, ('row2', 'subrow1'): 5},
        'C': {('row1', 'subrow1'): 6, ('row1', 'subrow2'): None, ('row2', 'subrow1'): 8}}

df = pd.DataFrame(data)

# 检索非空值并组合多个列
result = df[df.apply(lambda x: x.notnull().all(), axis=1)].apply(lambda x: '-'.join(x.dropna().astype(str)), axis=1)

print(result)

这将输出:

代码语言:txt
复制
row1  subrow1    1-6
dtype: object

在这个例子中,我们从多级DataFrame中检索了非空值,并将非空值组合成了一个新的列。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

numpy和pandas库实战——批量得到文件夹下多个CSV文件第一数据求其最

/前言/ 前几天群里有个小伙伴问了一个问题,关于Python读取文件夹下多个CSV文件第一数据求其最大和最小,大家讨论甚为激烈,在此总结了两个方法,希望后面有遇到该问题小伙伴可以少走弯路...通常我们通过Python来处理数据,用比较多两个库就是numpy和pandas,在本篇文章,将分别利用两个库来进行操作。...3、其中使用pandas库来实现读取文件夹下多个CSV文件第一数据求其最大和最小代码如下图所示。 ? 4、通过pandas库求取结果如下图所示。 ?...通过该方法,便可以快速取到文件夹下所有文件第一最大和最小。 5、下面使用numpy库来实现读取文件夹下多个CSV文件第一数据求其最大和最小代码如下图所示。 ?.../小结/ 本文基于Python,使用numpy库和pandas库实现了读取文件夹下多个CSV文件,求取文件第一数据最大和最小,当然除了这两种方法之外,肯定还有其他方法也可以做得到,欢迎大家积极探讨

9.3K20

直观地解释和可视化每个复杂DataFrame操作

初始DataFrame中将成为索引,并且这些显示为唯一,而这两组合将显示为。这意味着Pivot无法处理重复。 ? 旋转名为df DataFrame代码 如下: ?...结果是ID(a,b,c)和(B,C)及其对应每种组合,以列表格式组织。 可以像在DataFrame df上一样执行Mels操作 : ?...诸如字符串或数字之类列表项不受影响,列表是NaN(您可以使用.dropna()清除它们 )。 ? 在DataFrame dfExplode“ A ” 非常简单: ?...为了访问狗身高,只需两次调用基于索引检索,例如 df.loc ['dog']。loc ['height']。 要记住:外观上看,堆栈采用表二维性并将堆栈为多级索引。...合并不是pandas功能,而是附加到DataFrame。始终假定合并所在DataFrame是“左表”,在函数作为参数调用DataFrame是“右表”,带有相应键。

13.3K20

最全面的Pandas教程!没有之一!

下面这个例子,我们元组创建多级索引: ? 最后这个 list(zip()) 嵌套函数,把上面两个列表合并成了一个每个元素都是元组列表。...在 DataFrame 缺少数据位置, Pandas 会自动填入一个,比如 NaN或 Null 。...当你使用 .dropna() 方法时,就是告诉 Pandas 删除掉存在一个或多个行(或者)。删除是 .dropna(axis=0) ,删除行用是 .dropna(axis=1) 。...于是我们可以选择只对某些特定行或者进行填充。比如只对 'A' 进行操作,在处填入该平均值: ? 如上所示,'A' 平均值是 2.0,所以第二行被填上了 2.0。...查找空 假如你有一个很大数据集,你可以用 Pandas .isnull() 方法,方便快捷地发现表: ?

25.8K64

Pandas

data.index data.values DataFrame 属性: info:基本信息 columns:列名 size shape len:查看某行数 count:查看某有效个数...缺失处理 缺失识别: pandas.DataFrame.isnull()和 pandas.DataFrame.notnull()方法识别缺失缺失,两个方法会返回一个与输入同型布尔df。...().sum():统计每列缺失个数 #将数据按照指定分组后统计每组缺失情况,筛选出指定存在缺失升序排列 data_c=data.groupby('所在小区').apply(lambda...这一部分主要介绍了一些将多个 df 数据组合起来一些方法: Join and Merge 部分主要侧重于类似于 SQL 查询多表查询和联合方法 Concatenating 和 numpy concatenate...()方法将 series 相同看作一个类别,分别返回各个类别的记录数量,即频次,根据 sort 决定是否按频次排序。

9.1K30

数据科学家私藏pandas高阶用法大全 ⛵

和count组合,如果要获取2或更多组成分组计数,可以使用groupby和size组合。...()展开为一个列表,然后将列表元素拆分成多行,可以使用str.split()和explode()组合,如下例: import pandas as pd df = pd.DataFrame({"...combine_first()方法根据 DataFrame 行索引和索引,对比两个 DataFrame 相同位置数据,优先取数据进行合并。...如果调用combine_first()方法 df1 数据,则结果保留 df1 数据,如果 df1 数据为且传入combine_first()方法 df2 数据,则结果取 df2...数据,如果 df1 和 df2 数据都为,则结果保留 df1 (有三种:np.nan、None 和 pd.NaT)。

6K30

【数据分析】数据缺失影响模型效果?是时候需要missingno工具包来帮你了!

在本文中,我们将使用 pandas 来加载和存储我们数据,使用 missingno 来可视化数据完整性。...条形图 条形图提供了一个简单绘图,其中每个条形图表示数据帧。条形图高度表示该完整程度,即存在多少个。...它可以通过调用: msno.bar(df) 在绘图左侧,y轴比例0.0到1.0,其中1.0表示100%数据完整性。如果条小于此,则表示该缺少。 在绘图右侧,用索引测量比例。...接近正1表示一存在与另一存在相关。 接近负1表示一存在与另一存在是反相关。换句话说,当一存在时,另一存在数据,反之亦然。...如果在零级将多个组合在一起,则其中一是否存在与其他是否存在直接相关。树越分离,之间关联null可能性就越小。

4.7K30

Python pandas十分钟教程

df.info():提供数据摘要,包括索引数据类型,数据类型,和内存使用情况。 df.describe():提供描述性统计数据。...df['Contour'].isnull().sum():返回'Contour'计数 df['pH'].notnull().sum():返回“pH”中非计数 df['Depth']....unique():返回'Depth'唯一 df.columns:返回所有名称 选择数据 选择:如果只想选择一,可以使用df['Group']....数据清洗 数据清洗是数据处理一个绕不过去坎,通常我们收集到数据都是不完整,缺失、异常值等等都是需要我们处理Pandas给我们提供了多个数据清洗函数。...Pandas中提供以下几种方式对数据进行分组。 下面的示例按“Contour”对数据进行分组,计算“Ca”记录平均值,总和或计数。

9.8K50

国外大神制作超棒 Pandas 可视化教程

如果我想知道哪存在,可以使用 df.isnull().any() import pandas as pd df = pd.read_csv('music.csv') print(df.isnull...处理Pandas 库提供很多方式。最简单办法就是删除行。 ? 除此之外,还可以使用取其他数值平均值,使用出现频率高进行填充缺失。...import pandas as pd # 将填充为 0 pd.fillna(0) 5.分组 我们使用特定条件进行分组聚它们数据,也是很有意思操作。...相加在一起,然后组合在 Jazz 显示总和。...这也是 Pandas 库强大之处,能将多个操作进行组合,然后显示最终结果。 6.现有创建新 通常在数据分析过程,我们发现自己需要从现有创建新,使用 Pandas 也是能轻而易举搞定。

2.7K20

pandas学习-索引-task13

通过 [列名] 可以 DataFrame 取出相应,返回为 Series ,例如从表取出姓名一:  df = pd.read_csv("E:/document/python学习笔记/pandas...Sun # 4       Gaojuan You # Name: Name, dtype: object 如果要取出多个,则可以通过 [列名组成列表] ,其返回为一个 DataFrame ,例如从表取出性别和姓名两...sample 函数主要参数为 n, axis, frac, replace, weights ,前三个分别是指抽样数量、抽样方向(0为行、1为)和抽样比例(0.3则为总体抽出30%样本)。...与单层索引表一样,具备元素、行索引和索引三个部分。其中,这里行索引和索引都是 MultiIndex 类型,只不过 索引一个元素是元组 而不是单层索引标量。...例如,下面的表给出了员工信息,需要重新制作一张新表,要求增加一名员工同时去掉身高增加性别:  df_reindex = pd.DataFrame({"Weight":[60,70,80],

87600

针对SAS用户:Python数据分析库pandas

Pandas使用两种设计来表示缺失数据,NaN(数值)和Python None对象。 下面的单元格使用Python None对象代表数组缺失。相应地,Python推断出数组数据类型是对象。...解决缺失数据分析典型SAS编程方法是,编写一个程序使用计数器变量遍历所有使用IF/THEN测试缺失。 这可以沿着下面的输出单元格示例行。...通过将.sum()方法链接到.isnull()方法,它会生成每个缺失计数。 ? 为了识别缺失,下面的SAS示例使用PROC格式来填充缺失和缺失。...显然,这会丢弃大量“好”数据。thresh参数允许您指定要为行或保留最小。在这种情况下,行"d"被删除,因为它只包含3个。 ? ? 可以插入或替换缺失,而不是删除行和。....技术架构师开始,最近担任顾问,他建议企业领导如何培养和成本有效地管理他们分析资源组合。最近,这些讨论和努力集中于现代化战略,鉴于行业创新增长。

12.1K20

6个提升效率pandas小技巧

剪切板创建DataFrame pandasread_clipboard()方法非常神奇,可以把剪切板数据变成dataframe格式,也就是说直接在excel复制表格,可以快速转化为dataframe...product是字符串类型,price、sales虽然内容有数字,但它们数据类型也是字符串。 值得注意是,price都是数字,sales列有数字,但用-代替了。...检测并处理缺失 有一种比较通用检测缺失方法是info(),它可以统计每缺失数量。...标红色地方是有缺失,并且给出了缺失数量,你可以计算出该列有多少缺失。...多个文件构建一个DataFrame 有时候数据集可能分布在多个excel或者csv文件,但需要把它读取到一个DataFrame,这样需求该如何实现?

2.8K20

教程:使用 Chroma 和 OpenAI 构建自定义问答机器人

为了完整起见,我们将开始设置环境准备数据集。这与本教程中提到步骤相同。 步骤1 - 准备数据集 Kaggle 下载奥斯卡奖数据集,并将 CSV 文件移到名为 data 子目录。...首先导入 Pandas加载数据集: import pandas as pd df = pd.read_csv('....由于我们最感兴趣是与 2023 年相关奖项,因此让我们对其进行过滤,创建一个新 Pandas data frame 。同时,我们也将类别转换为小写,删除电影行。...例如,在 dataframe 前两行, “text” 具有以下: Austin Butler got nominated under the category, actor in a leading...这将成为吸收数据时生成嵌入默认机制。 让我们将 Pandas dataframe 文本转换为可以传递给 Chroma Python 列表。

28510

Pandas 高级教程——高级分组与聚合

Python Pandas 高级教程:高级分组与聚合 Pandas 分组与聚合操作是数据分析中常用技术,能够对数据进行更复杂处理和分析。...在本篇博客,我们将深入介绍 Pandas 高级分组与聚合功能,通过实例演示如何灵活应用这些技术。 1. 安装 Pandas 确保你已经安装了 Pandas。...高级分组与聚合 5.1 使用 agg 方法 agg 方法可以同时应用多个聚合函数,对多进行不同聚合: # 高级分组与聚合 result = df.groupby('Category').agg({...'}) 6.2 多级索引交换与切片 # 多级索引交换与切片 swapped_df = multi_index_df.swaplevel().sort_index() sliced_df = swapped_df.loc...总结 通过学习以上 Pandas 高级分组与聚合操作,你可以更灵活地处理各种数据集,实现更复杂分析需求。

12810

Pandas速查手册中文版

pandas-cheat-sheet.pdf 关键缩写和包导入 在这个速查手册,我们使用如下缩写: df:任意Pandas DataFrame对象 同时我们需要做如下引入: import pandas...():检查DataFrame对象返回一个Boolean数组 pd.notnull():检查DataFrame对象返回一个Boolean数组 df.dropna():删除所有包含行...df.dropna(axis=1):删除所有包含 df.dropna(axis=1,thresh=n):删除所有小于n个df.fillna(x):用x替换DataFrame对象中所有的...col1进行分组,计算col2和col3最大数据透视表 df.groupby(col1).agg(np.mean):返回按col1分组所有均值 data.apply(np.mean):对...执行SQL形式join 数据统计 df.describe():查看数据汇总统计 df.mean():返回所有均值 df.corr():返回之间相关系数 df.count():返回每一个数

12.1K92

Pandas详解

本教程将详细介绍Pandas各个方面,基本数据结构到高级数据操作,帮助读者更好地理解和利用这一工具。1. Pandas简介1.1 什么是Pandas?...数据读取与保存Pandas支持多种数据源读取数据,包括CSV、Excel、SQL数据库等。同时,也能将数据保存到这些格式。...数据清洗与处理在实际应用,数据往往不够干净。Pandas提供了丰富功能来处理缺失、重复等问题。...自定义函数与映射Pandas允许用户自定义函数应用于DataFrame数据,同时也支持通过映射方式进行数据转换。...多级索引与数据透视表进阶Pandas支持多级索引,允许你在一个轴上具有多个层次索引,从而更灵活地处理复杂数据。

1K11

6个提升效率pandas小技巧

剪切板创建DataFrame pandasread_clipboard()方法非常神奇,可以把剪切板数据变成dataframe格式,也就是说直接在excel复制表格,可以快速转化为dataframe...product是字符串类型,price、sales虽然内容有数字,但它们数据类型也是字符串。 值得注意是,price都是数字,sales列有数字,但用-代替了。...检测并处理缺失 有一种比较通用检测缺失方法是info(),它可以统计每缺失数量。...标红色地方是有缺失,并且给出了缺失数量,你可以计算出该列有多少缺失。...多个文件构建一个DataFrame 有时候数据集可能分布在多个excel或者csv文件,但需要把它读取到一个DataFrame,这样需求该如何实现?

2.4K20

科学计算库-Pandas随笔【附网络隐私闲谈】

怎么选取特定键值对,返回 obj【Series对象】?...8.2.10、pandas 层次索引 在一个轴上拥有多个索引级别,低维度形式处理高维度数据。 层次索引/多级索引具体有什么用?...在实践,更直观形式是通过层级索引(hierarchical indexing,也被称为多级索引,multi-indexing)配合多个有不同等级一级索引一起使用,这样就可以将高维数组转换成类似一维...(index) #将前面创建pop索引重置(reindex)为MultiIndex,就会看到层级索引,结果是单索引数组 #其中,前两列表示Series多级索引,第三是数据。...第一每个空格与上面的索引相同,这是多级索引表现形式。

2.9K180
领券