
本文介绍了如何使用 Pandas 统计 DataFrame 中字典列里,嵌套列表(特别是'list_A')的首个元素(索引为0)的非缺失值(非Null值)的个数。通过示例代码,详细展示了两种实现方法,帮助读者理解并掌握在 Pandas 中处理复杂数据结构的技巧。
此方法利用列表推导式提取每个字典中 'list_A' 的第一个元素,然后使用 pd.notna() 函数判断是否为非缺失值,最后使用 sum() 函数统计 True 的个数。
import pandas as pd
data = [{"list_A": [2.93, 4.18, 4.18, None, 1.57, 1.57, 3.92, 6.27, 2.09, 3.14, 0.42, 2.09],
"list_B": [820, 3552, 7936, None, 2514, 4035, 6441, 15379, 2167, 6147, 3322, 1177]},
{"list_A": [2.51, 3.58, 3.58, None, 1.34, 1.34, 3.36, 5.37, 1.79, 2.69, 0.36, 1.79],
"list_B": [820, 3552, 7936, None, 2514, 4035, 6441, 15379, 2167, 6147, 3322, 1177]},
{"list_A": [None, 5.94, 5.94, None, 2.23, 2.23, 5.57, 8.9, 2.97, 4.45, 0.59, 2.97],
"list_B": [820, 3552, 7936, None, 2514, 4035, 6441, 15379, 2167, 6147, 3322, 1177]}]
# Create a DataFrame with a column named "column_dic"
df = pd.DataFrame({"column_dic": [data]})
df['count_first_item'] = [pd.notna([y['list_A'][0] for y in x]).sum()
for x in df['column_dic']]
print(df)代码解释:
此方法首先使用 Series.explode() 将字典列表展开为单独的行,然后使用 Series.str.get() 获取 'list_A' 列表,再使用 str[0] 获取第一个元素,最后使用 DataFrameGroupBy.count() 统计每个分组(原始 DataFrame 的每一行)中非缺失值的个数。
import pandas as pd
data = [{"list_A": [2.93, 4.18, 4.18, None, 1.57, 1.57, 3.92, 6.27, 2.09, 3.14, 0.42, 2.09],
"list_B": [820, 3552, 7936, None, 2514, 4035, 6441, 15379, 2167, 6147, 3322, 1177]},
{"list_A": [2.51, 3.58, 3.58, None, 1.34, 1.34, 3.36, 5.37, 1.79, 2.69, 0.36, 1.79],
"list_B": [820, 3552, 7936, None, 2514, 4035, 6441, 15379, 2167, 6147, 3322, 1177]},
{"list_A": [None, 5.94, 5.94, None, 2.23, 2.23, 5.57, 8.9, 2.97, 4.45, 0.59, 2.97],
"list_B": [820, 3552, 7936, None, 2514, 4035, 6441, 15379, 2167, 6147, 3322, 1177]}]
# Create a DataFrame with a column named "column_dic"
df = pd.DataFrame({"column_dic": [data]})
df['count_first_item'] = (df['column_dic'].explode().str.get('list_A').str[0]
.groupby(level=0).count())
print(df)代码解释:
这两种方法都能够有效地统计 DataFrame 字典列中列表首个元素的非缺失值个数。 第一种方法使用列表推导式,代码简洁易懂,但当数据量较大时,性能可能稍逊。 第二种方法使用 Series.explode() 和 DataFrameGroupBy.count(),代码略微复杂,但通常在处理大数据集时效率更高。 选择哪种方法取决于具体的数据规模和性能需求。
以上就是Pandas:统计DataFrame字典列中列表首个元素的非缺失值个数的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号