Pandas的基础应用

目录

前言

一、问题一

二、问题二

三、问题三

四、问题四

总结一下整个脚本的功能

代码解释:

准备:导入pandas

1.解决问题一

2.解决问题二

3.解决问题三

4.解决问题四

总结

前言

work.py 文件包含了四个问题的解决方案,分别处理了不同类型的文件和数据操作。这些操作涉及到读取 CSV/Excel 文件、筛选数据、合并数据以及导出数据到新的 Excel 文件。

一、问题一

这部分代码读取了一个名为 News_Security.csv 的 CSV 文件,并从中筛选出 SecurityType 列等于 'A股' 的行。然后选择 DeclareDate, Title, NewsID, ShortName 四列,并将这些数据保存到一个新的 Excel 文件中,文件名是 A股新闻查询结果.xlsx

二、问题二

这部分代码读取了一个名为 News_NewsInfo1.csv 的 CSV 文件,并计算其中 NewsSource 列包含字符串 "东方财富网" 的行数。然后将这个计数值保存到一个 DataFrame 中,并将此 DataFrame 导出到一个名为 东方财富网.xlsx 的 Excel 文件中。

三、问题三

这部分代码读取了两个 CSV 文件,分别是 TRD.csvAF_Actual.csv,并将这两个文件合并成一个新 DataFrame,然后将结果保存到一个名为 日度收益与分析师预测的每股收益与市盈率.csv 的 CSV 文件中。

四、问题四

这部分代码读取了一个名为 STK_LISTEDCOINFOANL.xlsx 的文件内容,并统计其中的行数(即新闻条目数)。为了确保准确计数,代码会检查文件的最后一行是否以换行符结束,如果不结束则加1。然后将这个计数值保存到一个 DataFrame 中,并将此 DataFrame 导出到一个名为 新闻总数.xlsx 的 Excel 文件中。


总结一下整个脚本的功能

从 News_Security.csv 中提取 A 股新闻数据,并保存到 A股新闻查询结果.xlsx。 计算 News_NewsInfo1.csv 中来自东方财富网的新闻数量,并保存到 东方财富网.xlsx。 合并 TRD.csv 和 AF_Actual.csv,并将结果保存到 日度收益与分析师预测的每股收益与市盈率.csv。 计算 STK_LISTEDCOINFOANL.xlsx 中的新闻总数,并保存到 新闻总数.xlsx。


代码解释:

准备:导入pandas

1.解决问题一

# 问题一
df1 = pd.read_csv('News_Security.csv')  # 如果数据是CSV格式
a_stock_news = df1[df1['SecurityType'] == 'A股']
selected_columns = a_stock_news[['DeclareDate', 'Title', 'NewsID','ShortName']]
excel_filename = 'A股新闻查询结果.xlsx'
selected_columns.to_excel(excel_filename, index=False, engine='openpyxl')
print(f'查询结果已保存到 {excel_filename}')

这部分代码读取了一个名为 News_Security.csv 的 CSV 文件,并从中筛选出 SecurityType 列等于 'A股' 的行。然后选择 DeclareDate, Title, NewsID, ShortName 四列,并将这些数据保存到一个新的 Excel 文件中,文件名是 A股新闻查询结果.xlsx

2.解决问题二

# 问题二
df2 = pd.read_csv('News_NewsInfo1.csv',on_bad_lines='skip')
eastmoney_count = df2[df2['NewsSource'].str.contains("东方财富网", na=False)].shape[0]
results_df = pd.DataFrame({
    'Result': [eastmoney_count]  # 将结果保存在DataFrame中
})
excel_filename = '东方财富网.xlsx'
results_df.to_excel(excel_filename, index=False, engine='openpyxl')

print(eastmoney_count)

这部分代码读取了一个名为 News_NewsInfo1.csv 的 CSV 文件,并计算其中 NewsSource 列包含字符串 "东方财富网" 的行数。然后将这个计数值保存到一个 DataFrame 中,并将此 DataFrame 导出到一个名为 东方财富网.xlsx 的 Excel 文件中。

3.解决问题三

# 问题三
df3 = pd.read_csv('TRD.csv')
df4= pd.read_csv('AF_Actual.csv')
combined_df = pd.concat([df3, df4], ignore_index=True)
combined_df.to_csv('日度收益与分析师预测的每股收益与市盈率.csv', index=False)

这部分代码读取了两个 CSV 文件,分别是 TRD.csvAF_Actual.csv,并将这两个文件合并成一个新 DataFrame,然后将结果保存到一个名为 日度收益与分析师预测的每股收益与市盈率.csv 的 CSV 文件中。

4.解决问题四

# 问题四
with open('STK_LISTEDCOINFOANL.xlsx', 'r', encoding='utf-8', errors='ignore') as file:
    news_data = file.read()
news_count = news_data.count('\n') + 1  # 加1是因为文件最后一行可能没有换行符
results_df = pd.DataFrame({
    'DailyNewsCount': [news_count]  # 将结果保存在DataFrame中
})

# 将结果保存到Excel文件中
excel_filename = '新闻总数.xlsx'
results_df.to_excel(excel_filename, index=False, engine='openpyxl')

# 打印输出结果
print(f"The total number of daily news items is: {news_count}")
print(f'Results have been saved to {excel_filename}')

这部分代码读取了一个名为 STK_LISTEDCOINFOANL.xlsx 的文件内容,并统计其中的行数(即新闻条目数)。为了确保准确计数,代码会检查文件的最后一行是否以换行符结束,如果不结束则加1。然后将这个计数值保存到一个 DataFrame 中,并将此 DataFrame 导出到一个名为 新闻总数.xlsx 的 Excel 文件中。


总结

work.py 文件包含了四个问题的解决方案,分别处理了不同类型的文件和数据操作。这些操作涉及到读取 CSV/Excel 文件、筛选数据、合并数据以及导出数据到新的 Excel 文件

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值