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)
639

被折叠的 条评论
为什么被折叠?



