pandas 存取数据小笔记

时间:2021-08-10 16:14:03
import pandas as pd 

1.   读取和保存 csv文件

#读
df = pd.read_csv(read_file_path, header=0)
# 其中read_file_path 为字符串,为读的文件所在路径
# 比如 "../cj_data/query_result.csv"
# header=0 意思是第一行包含字段名,可以通过df.columns 取到列名 #保存
df.to_csv(save_file_path)

2.  pandas如何根据字段进行过滤

df = df[                                              # [] 为读取操作符
(df['course_id'] == course_id) # == 等于
& (df['member_id'] == str(member_id)) # & 来关联多个筛选条件,
]

3. python脚本运行日志保存

import logging

dt = time.strftime("%Y%m%d")
# 读取当前日期 logfile = project_folder + "log/log_" + str(dt) + ".txt"
logging.basicConfig(filename=logfile, filemode='a', level=logging.INFO)
# 设置日志级别,开始写入日志

logger = logging.getLogger(__name__)
logger.info('write_member_result ...')
logger.info(str(time.strftime("%Y-%m-%d %H:%M:%S")))
#日志内容全靠logger.info
#类似于print,但是可以保存日志文件,来帮助定位问题

4.  排序,生成序列号

    df = df.sort_values(by='lesson_start_time', ascending=True)
# 函数是pandas的sort_values df['lesson_order'] = range(df.shape[0])
# 生成序号是从0开始的 df['lesson_order'] = [i+1 for i in df['lesson_order']]
# 序列号+1,变成从1开始

 

5.  join操作

df3 = pd.merge(df, df2, how='left', on=['member_id', 'lesson_id'])
# 两个dataframe根据主键进行join

  

6. dataframe 某个字段的类型转化

df['col2'] = df['col2'].astype('float64')
print '-----------'
print df.dtypes

 

7. spark 和python的 Data Frame之间互相转换

8. python 对hive读和写