如何分析Python DataFrame并统计Activity列中指定活动的出现次数
统计DataFrame中jogging或walking的出现次数
嘿,我来帮你搞定这个统计需求~首先先确认下你已经成功读取了数据,你的读取代码是没问题的(记得先导入pandas库哦):
import pandas as pd columns=['User ID','Activity','Time Stamp','X-Axis','Y-Axis','Z-Axis'] input_data = pd.read_csv('walkingcupstairscdownstairs.txt',delimiter=',',names=columns)
接下来给你几种简单直接的方法,来统计Activity列里jogging和walking的出现次数:
方法一:用value_counts()精准提取目标值
先获取所有活动的全局计数,再提取你需要的两项,没有对应活动的话会返回0,很省心:
# 获取所有活动的计数统计 activity_counts = input_data['Activity'].value_counts() # 提取jogging和walking的次数 jogging_count = activity_counts.get('jogging', 0) walking_count = activity_counts.get('walking', 0) # 也可以直接算出两者总次数 total_target = jogging_count + walking_count print(f"jogging出现次数: {jogging_count}") print(f"walking出现次数: {walking_count}") print(f"两者总次数: {total_target}")
方法二:布尔索引直接筛选后计数
这种方法更直观,先筛出符合条件的行,再统计行数就是出现次数:
# 一次性筛选出jogging或walking的行 target_rows = input_data[input_data['Activity'].isin(['jogging', 'walking'])] total_target = len(target_rows) # 如果要分开统计各自的次数 jogging_count = len(input_data[input_data['Activity'] == 'jogging']) walking_count = len(input_data[input_data['Activity'] == 'walking']) print(f"jogging出现次数: {jogging_count}") print(f"walking出现次数: {walking_count}") print(f"两者总次数: {total_target}")
方法三:分组统计(适合更复杂的分析场景)
如果之后还要扩展其他统计需求,用groupby会更灵活:
# 按Activity分组后统计每组的行数 counts = input_data.groupby('Activity').size() # 提取目标活动的次数 jogging_count = counts.get('jogging', 0) walking_count = counts.get('walking', 0)
这些方法都能快速得到你想要的结果,选最顺手的用就行啦~
内容的提问来源于stack exchange,提问作者Salman Shaukat
相关产品推荐
相关产品推荐

