【Pandas】记录一些遇到的问题

127 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情

列表获取元素最后一个值的方法

list1 = [1, 2, 3, 4, 5] 
print(list1[len(list1)-1]) 
print(list1[-1])

将object转换成日期型

# 将df [‘date’]转换为datetime 
pd.to_datetime(df['date'])

查看自己的python版本

import platform 
print(platform.python_version())

dataframe某一列的去重值及数量

# dataframe某一列的去重值 df["uid"].unique() #dataframe某一列的去重值的个数 len(df["uid"].unique())

python连接远程MySQL数据库

import pymysql

db=pymysql.connect(host=“xxxxx”,

user="xxxx",

passwd='xxxx',

db="xxxx")

cursor=db.cursor()

# SQL 查询语句

sql = "SELECT * FROM xx"

# 执行SQL语句

cursor.execute(sql)

# 获取所有记录列表

results = cursor.fetchall()

# 打印结果

print ( results)

数据导出为csv文件

# 数据导出为csv文件

outputpath = 'df.csv'

df.to_csv(outputpath, sep = ',', encoding='utf-8' )

计算TGI

## Calculate TGI for binary or continuous outcome

def calculate_group_tgi(df, covariate, outcome, groupvar=None):

# df:dataframe

# groupvar: list, colnames of group features; can be None

# covariate: list, colnames of group features

# outcome: string, colnames of binary(0-1) or continous outcome

if groupvar == None:

df['virtual_group'] = 1

groupvar = ['virtual_group']

res = pd.DataFrame()

for c in covariate:

# calculate size, mean and std

grp = groupvar + [c]

# coverage = (df.groupby(grp).size()/df.groupby(groupvar).size()).reset_index(name = 'coverage')

# rate_group = df.groupby(grp)[outcome].apply(lambda x:np.mean(x))

# tgi = (rate_group/rate_all).reset_index()

size_total = df.groupby(groupvar).size().reset_index(name = 'size_total')

size_group = df.groupby(grp).size().reset_index(name = 'size_group')

查看pandas 版本 :

pandas.__version__ 
# 这里是双英文下划线

查看版本的另一种方式:

import pandas as pd 
pd.show_versions() 
#这种方式打印的版本比较详细

获取 dataFrame 的信息

# 获取 dataFrame 的信息 
df.info()

head和tail:取出两端数据行

df.head(3) # 从头部开始取出数据行,默认为5 
df.tail(3) # 从尾部开始取出数据行,默认为5

unique和nunique:显示唯一值

df['Physics'].nunique() # 显示有多少个唯一值 
df['Physics'].unique() # 显示所有唯一值

describe和info:数据描述

# 默认统计数值型数据的各个统计量(percentiles:自行选择分位数) 
print(df.describe(percentiles=[.05, .25, .75, .95])) 
print(df['Physics'].describe()) 
# 非数值型也可以用describe函数