基于指定日期条件统计CSV中正向情感列的累计值
实现日期筛选后的正向情感累计统计
我来帮你把代码补全并优化,刚好能实现你要的「输入日期后统计该日期之后所有行的正向情感累计值」的需求:
import datetime import pandas as pd # 读取CSV文件 data = pd.read_csv('rt_Article2.csv') # 将CSV中的日期列转换为datetime格式(假设你的日期列名为'date',如果不是请替换成实际列名) data['date'] = pd.to_datetime(data['date']) # 获取用户输入的日期,指定输入格式为常用的'YYYY-MM-DD' input_date_str = input("请输入日期(格式:YYYY-MM-DD):") input_date = datetime.datetime.strptime(input_date_str, '%Y-%m-%d') # 筛选日期晚于输入日期的行,统计正向情感列的累计值(假设正向情感列名为'positive_sentiment',请替换为实际列名) total_positive = data[data['date'] > input_date]['positive_sentiment'].sum() # 输出最终结果 print(f"日期晚于{input_date_str}的所有行中,正向情感累计值为:{total_positive}")
关键细节说明
- 列名适配:代码里的
'date'和'positive_sentiment'是假设的列名,你需要根据自己CSV的实际列名修改,比如日期列叫'publish_time'的话,就把data['date']改成data['publish_time']。 - 日期格式调整:如果用户习惯输入其他格式(比如
MM/DD/YYYY),把strptime里的'%Y-%m-%d'改成对应的'%m/%d/%Y'即可。 - 边界逻辑自定义:当前代码是严格筛选「晚于」输入日期的行,如果需要包含输入日期当天的内容,把
data['date'] > input_date改成data['date'] >= input_date就行。 - 无效数据清理:如果CSV里有缺失的日期或情感值,可以在读取后加上
data = data.dropna(subset=['date', 'positive_sentiment']),避免统计时出现错误。
测试示例
假设你的CSV数据如下:
| date | positive_sentiment |
|---|---|
| 2023-01-01 | 1 |
| 2023-01-02 | 0 |
| 2023-01-03 | 1 |
| 2023-01-04 | 1 |
当输入2023-01-02时,程序会筛选出2023-01-03和2023-01-04的行,累计值为1+1=2,最终输出:日期晚于2023-01-02的所有行中,正向情感累计值为:2
内容的提问来源于stack exchange,提问作者Jun An
相关产品推荐
相关产品推荐

