pandas的使用(1)文件的写入和读取

1.pandas的api网站

https://pandas.pydata.org/docs/reference/frame.html

pandas主要有两种数据类型,Series和DataFrame,Series算是一行数据,DataFrame是整个二维的数据表。

掌握了DataFrame的基础方法,就可以完成日常的数据分析的工作,但是因为方法实在太多,只需要掌握常用的方法即可。

2.创建一个dataframe对象

创建一个空对象

# 创建一个空 DataFrame,指定列名和类型
    result = pd.DataFrame(columns=['id'])
import pandas as pd
df1 = pd.DataFrame({"key":["key1","key2","key3"],\
					"data":["data1","data2","data3"]})
print(df1)

在这里插入图片描述

3.将数据输出为csv、json、db文件

1.CSV

df1.to_csv(‘test_data/test_data.csv’, index=False)

·index = False 是不要把行索引写入文件

2.JSON

df1.to_json(‘test_data/test_data.json’, orient=‘records’, lines=True)

·orient=‘records’ 把每行数据变成一个JSON对象,整体是一个列表

·lines=True 把上面列表里的每个对象 1行1条

3.DB

df1.to_sql(‘daily’, conn, index=False, if_exists=‘replace’)

·name = ‘daily’ 数据库里要创建的表名

·con = conn 数据库连接对象(SQLite/MySQL/PostgreSQL均可)

·index = False 是不要把行索引写入文件

·if_exists=‘replace’ 如果表daily已存在,整表删除重建

import pandas as pd
import os

df1 = pd.DataFrame({"key":["key1","key2","key3"],\
					"data":["data1","data2","data3"]})

# 创建一个文件夹test_data存放数据
os.makedirs('test_data', exist_ok=True)

# 1.CSV
# index = False 是不要把行索引写入文件
df1.to_csv('test_data/test_data.csv', index=False)

# 2.JSON
# orient='records' 把每行数据变成一个JSON对象,整体是一个列表
# lines=True 把上面列表里的每个对象 1行1条
df1.to_json('test_data/test_data.json', orient='records', lines=True)

# 3.DB
import sqlite3
# 如果没有这个db文件会z自动生成
conn = sqlite3.connect('test_data/test_data.db')
# name = 'daily' 数据库里要创建的表名
# con = conn 数据库连接对象(SQLite/MySQL/PostgreSQL均可)
# index = False 是不要把行索引写入文件
# if_exists='replace' 如果表daily已存在,整表删除重建
df1.to_sql('daily', conn, index=False, if_exists='replace')
conn.close()

4.将数据添加到csv、json、db文件中

mode=‘a’

# ---------- CSV 追加 ----------
# 如果文件不存在就创建,存在就追加
csv_file = 'test_data/test_data.csv'
df1.to_csv(csv_file,
                mode='a',          # 追加
                header=not os.path.exists(csv_file),  # 文件不存在才写表头
                index=False)

# ---------- JSON Lines 追加 ----------
json_file = 'test_data/test_data.json'
df1.to_json(json_file,
                 orient='records',
                 lines=True,
                 mode='a',        # 追加
                 index=False)

# ---------- SQLite 追加 ----------
conn = sqlite3.connect('test_data/test_data.db')
df1.to_sql('daily',
                conn,
                index=False,
                if_exists='append')  # 关键:append 而非 replace
conn.close()

5.从csv、json、db文件读取数据

# 文件路径
csv_file = 'test_data/test_data.csv'
json_file = 'test_data/test_data.json'
db_file  = 'test_data/test_data.db'

# 1. 读 CSV
df_csv = pd.read_csv(csv_file) if os.path.exists(csv_file) else pd.DataFrame()
print(df_csv)

# 2. 读 JSON Lines
df_json = pd.read_json(json_file, lines=True) if os.path.exists(json_file) else pd.DataFrame()
print(df_csv)

# 3. 读 SQLite(假设表名 daily)
if os.path.exists(db_file):
    conn = sqlite3.connect(db_file)
    df_db = pd.read_sql('SELECT * FROM daily', conn)
    conn.close()
else:
    df_db = pd.DataFrame()
print(df_csv)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值