pandas导入导出

我自己就是:数据导入到数据库,然后在数据库建立索引进行查询的。
有一说一,没有索引根本处理不了大数据。所以我只是用pandas进行预处理。

所以,我自己整理了一下pandas导入导出的一些重要参数。
网上这群人抠门的要死,为了这几十行查了大概100多个网页,对半就是:我也不知道,大佬帮忙。
pandas不是很有名吗?

import pandas
import sqlalchemy
import pymysql

# 读取EXCEL
path = 'F:\\mail_log\\mail_list\\13740-2021-05-08日处理邮件共60条,IDC0条.xlsx'
df = pandas.read_excel(path)
# 读取第二个列表
df = pandas.read_excel(path, sheet_name=1)

# 获取所有的sheet
sheet_name_list = pandas.read_excel(path, sheet_name=None).keys()
print(sheet_name_list)
for part in sheet_name_list:
    print(part)
# 修改获取的标题列
df = pandas.read_excel(path, header=None)

# 只获取特定列
df = pandas.read_excel(path, usecols=[0, 1, 2])

# 无标题导入列表
time_list = ['1', '2']
df = pandas.DataFrame(time_list)

# 导入带标题数据,同时导入多列
time_list = ['1', '2']
time_list = {'time': time_list, 'time1':time_list}
df = pandas.DataFrame(time_list)

# 切片获得副本
print(df['故障'])

# 新增空数据
df = pandas.DataFrame(columns=['A', 'B', 'C', 'D'])

# 切片原数据并修改
df.loc[:, '故障'] = 'ss'
print(df)

# 清除重复项并保留第一条
df.drop_duplicates(subset=None, keep='first', inplace=None)

# 删除所有数据为空的值
df.dropna(how='any', inplace=True)

# 删除某一列有缺失值的数据
df.dropna(axis=0, subset=["Age", "Sex"], inplace=True)   # 丢弃‘Age’和‘Sex’这两列中有缺失值的行

# 叠加数据
# 这个写法不导入导入数据的index
df = df.append([df, df, df], ignore_index=True)
# print(df)

# 获取第一条和最后一条数据
df.head(1)
print(df.tail(1))

# 补齐缺失的数据(合并单元格)
# 向下填充
df.fillna(method='ffill', inplace=True)
# 向上填充
df.fillna(method='bfill', inplace=True)


# 删除最后一行
df.drop(df.tail(1).index, inplace=True)

# 修改标题
df.columns = ["id", "name", "age", '4', '5', '6', '7', '8', '9', '10', '11']

# 删除列
df.drop('5', axis=1, inplace=True)
df.drop(['7', '6'], axis=1, inplace=True)

# 删除行
df.drop(range(0, 20), inplace=True)

# 新增列
df['12'] = '1'

# 计算列并新增
df['list3'] = df['list1'] + df['list2']

# 替换某一个值为另外一个值
df.replace(to_replace='21655', value='1', inplace=True)

# 去除重复数据
df.drop_duplicates(subset=['method', 'year'], keep='first', inplace=True)

# 通过条件删除行
df.drop(df[df['ip'] == '源端设备IP'].index, inplace=True)

# 导出到CSV文件
df.to_csv('1.csv')

# 带中文路径的导入
with open('1.csv', 'r') as file:
    df.to_csv(file)

# 导出到EXCEL
df.to_excel('1.xls', sheet_name='good')


# 不带索引导出
df.to_csv('1.csv', index=False)

# 附加到其他文件后(不带标题)
df.to_csv('1.csv', index=False, header=0, mode='a')

# 重构索引
df.reset_index(drop=True, inplace=True)

# 导入到数据库
# 不支持pymysql,支持sqlslchemy驱动pymysql
db = sqlalchemy.create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/d2')
df.to_sql(name='d2.lc_data', con=db, if_exists='replace', index=False)

# 转化成列表
data = df.values.tolist()

# 通过条件筛选数据
print(df[df['12'] == 1])
print(df[df['12'] >= 1])




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值