DataWhale作业

本次打卡:一夜回到解方前QAQ
不是有意要这样写,确实没有把前面的东西用起来
在这里插入图片描述
基本思路:

  1. 分析题目,查看文件:

company_data.csv 中的信息:

	证券代码 = 企业
	日期 = 时间年份
	收入类型 = 产业类型
	收入额 = 收入额
  1. 读取数据并简要查看
import numpy as np
import pandas as pd
path1 = r".\company\Company.csv"
path2 = r"./company/Company_data.csv"  # 两种写法均可以

df1 = pd.read_csv(path1, encoding="utf-8", engine="python")   
df2 = pd.read_csv(path2, encoding="utf-8", engine="python")

print(df1.head())
print("-"*66)
print(df2.head())

print("Company", df1.shape, type(df1))
print("Company_data", df2.shape, type(df2))
  1. 转化数学公式

     p(Xi) = 某个企业某年某产业收入 /  该企业改年所有产业的总收入
     		= 同一个证券代码 日期不变(同一日期)某个收入类型的收入额 /  同一证券代码 同一年 的收入总和
    

关键是如何实现:??
这里便使用了分组的形式:
先对分母进行操作:

df2_time = df2.groupby(["证券代码", "日期"])["收入额"].sum()
print(df2_time, type(df2_time))

a = np.array([])
a = df2_time.values
# print(a.reshape(-1, 1))
df2_time_sum = a.reshape(-1, 1)

再对分子操作
这里涉及到长宽表的使用:

df2.pivot_table(index=["证券代码", "日期"],
               columns = "收入类型",
               values = "收入额")
b = np.array([])
b = df2.pivot_table(index=["证券代码", "日期"],
               columns = "收入类型",
               values = "收入额").values

构成 p :
这里的思路类似于第一章的练习题

p = b/a.reshape(-1, 1)

I = (p * np.log(p)).sum()		# 出现警告

此处卡壳(因为打印出的 I 是 Nan)
这我就不明白了。数据怎么就是空值呢?
(略过)

  1. 将上面的到的数据写入到表1中。
    怎么对应的相同的项目去写入数据??
    又不会了??
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值