数据分析学习笔记

第一步:文件命名

由于我的py文件命名为json.py,导致引用时报错:

partially initialized module 'json' has no attribute 'dumps' (most likely due to a circular import)部分初始化的模块“json”没有属性“dumps”(很可能是由于循环导入)

后面修改成json_1.py,再次执行就没问题了。

 第二步:数据导入

可以使用两种方法生成数据表

1、文档导入:通过Excel文档导入,把Excel文档放到python安装目录下后执行以下语句:

df=pd.DataFrame(pd.read_excel('name.xlsx'))

 2、语句生成:按照0-99进行补位,生成一个数据表

a = np.arange(100,dtype=float).reshape((10,10))
for i in range(len(a)):
a[i,:i] = np.nan

df = pd.DataFrame(data=a,columns =['a','b','c','d','e','f','g','h','i','j']

#以上语句会生成10行的数据表,因此需要有10个列名columns,列名可自行定义

第三步:数据修改

前面将部分数据填充成nan,以下语句将所有nan替换成0

df.fillna(value=0)

#fillna()方法默认不会修改原DataFrame,需要将填充后的结果重新赋值给原DataFrame才能生效。因此,正确代码应该是:
df.loc[:,['a','b','c','d','e','f','g','h','i','j'] = d.loc[:,['a','b','c','d','e','f','g','h','i','j']].fillna(0)

第四步:数据导出

将df表的数据导出到CSV文档,路径在python安装目录

#输出到 CSV 格式
df_inner.to_csv('excel_to_python.csv')

完整代码

json_1.py

import json 
print(json.__file__)
 
def save_json(save_path,data):
    assert save_path.split('.')[-1] == 'json'
    with open(save_path,'w') as file:
        json_str = json.dumps(data)
        file.write(json_str)
 
def load_json(file_path):
    assert file_path.split('.')[-1] == 'json'
    with open(file_path,'r') as file:
        json_str = file.read()
        data = json.loads(json_str)
    return data

 
# 测试
data = {'name':'0.jpg','weight':50,'height':50}
 
# 保存为json文件
save_json("./data.json",data)
# 从json 文件加载数据
data_load = load_json("./data.json")
if __name__=='__main__': 
# 打印保存与加载的数据
    print(data)
    print(data_load)

sort.py

import numpy as np
import pandas as pd

from json_1 import save_json,load_json

# 测试
# data = {'name':'0.jpg','weight':50,'height':50}
 
# 保存为json文件
# save_json("./data.json",data)
# 从json 文件加载数据
# data_load = load_json("./data.json")
 
# 打印保存与加载的数据
# print(data)
# print(data_load)

a = np.arange(100,dtype=float).reshape((10,10))
for i in range(len(a)):
    a[i,:i] = np.nan
 
df = pd.DataFrame(data=a,columns =['a','b','c','d','e','f','g','h','i','j'])
print(df)
# d.loc[:,['a','b','c']] = d.loc[:,['a','b','c']].fillna(0)
# print(d)
df.fillna(method='ffill',limit=2,inplace=True)
print(df)

# 用0填补空值
# print(df.fillna(value=0))
# df.fillna(value=0)(不适用,改成下面的语句)
# fillna()方法默认不会修改原DataFrame,需要将填充后的结果重新赋值给原DataFrame才能生效。
# df.loc[:,['a','b','c']] = d.loc[:,['a','b','c']].fillna(0)

# 用前一行的值填补空值
# print(df.fillna(method='pad',axis=0))

# 用后一列的值填补空值
# print(df.fillna(method='backfill', axis=1))
# df.fillna(method='bfill', axis=1, inplace=True)

# 连续空值,最多填补3个
# print(df.fillna(method='ffill',axis=0, limit=3))

# 每条轴上,最多填补3个
# print(df.fillna(value=-1,axis=0, limit=3)) 

#输出到 CSV 格式
# df.to_csv('excel_to_python.csv') 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值