python dataframe使用总结

文章展示了如何使用Pandas库处理Excel数据,填充NAN值,按TABLE_NAME和COLUMN_NAME进行分组聚合,将结果转换成列表并存储为字典结构。之后,利用json.dumps()将字典转换为JSON格式。同时,文章还提及了如何筛选含有NAN值的行,并指出当一行中有多个缺失值时,使用isnull().values的注意事项。
摘要由CSDN通过智能技术生成
import pandas as pd
import json
df = pd.read_excel('C:/Users/1/Desktop/1.xls',index_col=0)
df.fillna("", inplace=True)
'''
# fillna 自动填充NAN空值,可设置为用""填充
'''
# for name, group in df.groupby(['TABLE_NAME','COLUMN_NAME'])['COMMENTS','DATA_TYPE','DATA_LENGTH','DATA_PRECISION']:
#     print ("name: ", name)
#     print ("group:", group)
s = df.groupby(['TABLE_NAME','COLUMN_NAME'])['COMMENTS','DATA_TYPE','DATA_LENGTH','DATA_PRECISION'].agg(list)
'''
# 按照'TABLE_NAME','COLUMN_NAME'两个特征聚类,聚类结果只保留'COMMENTS','DATA_TYPE','DATA_LENGTH','DATA_PRECISION'这几个特征
# 聚合结果value的数据类型是list
'''
# for name, group in s:
#     print ("name: ", name)
#     print ("group:", group)
# print (s)

# print(s.index.levels)
d = {level: s.xs(level).to_dict('index') for level in s.index.levels[0]}
'''
# dataframe.index() 得到 'TABLE_NAME','COLUMN_NAME'两个聚类标准的结果,结果为list
# dataframe.index().levels[0] 取结果的[0]元素
# dataframe.xs(level) 获取具体level下的value值
'''
# print(s.xs('A1'))
# print("******")
# print(s.xs('A1').to_dict('index'))
'''
# DataFrame.to_dict (self, orient='dict’, into=) — 官方文档
# orient =‘index’ ,转化后的字典形式:{index(值) : {column(列名) : value(值)}};
'''
j = json.dumps(d)

result

          COMMENTS   DATA_TYPE DATA_LENGTH DATA_PRECISION
COLUMN_NAME                                                
NAME              []  [VARCHAR2]       [200]             []
VIN               []  [VARCHAR2]        [17]             []
******
{'NAME': {'COMMENTS': [''], 'DATA_TYPE': ['VARCHAR2'], 'DATA_LENGTH': [200], 'DATA_PRECISION': ['']}, 'VIN': {'COMMENTS': [''], 'DATA_TYPE': ['VARCHAR2'], 'DATA_LENGTH': [17], 'DATA_PRECISION': ['']}}

筛选含有Nan值的行

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, 3, np.nan, 5],
    'B': [np.nan, 2, np.nan, 4, 5],
    'C': [np.nan, 2, 3, 4, 5]
})

mask = df.isnull().any(axis=1) # 找到含有NaN的行
result = df[mask] # 根据mask进行筛选

在这里插入图片描述
将某列中Nan值所在的行打印出来

df[df['B'].isnull().values==True]

df[df.isnull().values==True],这条语句只适用于一行中最多有一个缺失值的情况,如果一行中有n个缺失值,那么会重复输出n行同样的记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值