用Pandas统计含30+值的行占比及拆分列表型列的方法
问题1:计算含30及以上数值的行占总行数的百分比
用Pandas可以快速完成统计:
import pandas as pd # 假设你的DataFrame变量名为df # 标记每行是否存在≥30的数值 has_high_value = df.apply(lambda row: any(row >= 30), axis=1) # 计算占比并保留两位小数 percentage = (has_high_value.sum() / len(df)) * 100 print(f"占比:{percentage:.2f}%")
逻辑说明:
apply(axis=1)按行遍历DataFrameany(row >=30)判断该行是否有至少一个数值≥30- 求和得到符合条件的行数,除以总行数39后乘以100得到百分比
问题2:将列表形式的数据拆分为不同列
假设你的列表数据存储在Pandas Series中(示例变量名list_series),直接转换为DataFrame即可自动拆分:
# 将列表序列转换为DataFrame,自动按列表元素拆分列 split_result = pd.DataFrame(list_series.tolist()) # 可选:自定义列名 split_result.columns = [f"new_col_{i+1}" for i in range(split_result.shape[1])]
注意:如果列表长度不一致,转换后的DataFrame会用NaN填充缺失的位置,这是Pandas处理不等长列表的默认行为。
内容的提问来源于stack exchange,提问作者anu agarwal
相关产品推荐
相关产品推荐

