字符串转日期
import datetime
datetime.datetime.strptime('2022.01.07', '%Y.%m.%d').date()
日期转字符串
df['出生日期'] = df['出生日期'].apply(lambda x:x.strftime('%Y.%m.%d'))
python中时间日期格式化符号
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
更多
计算年龄函数
def calculate_age(born):
today = datetime.date.today()
return today.year - born.year - ((today.month, today.day) < (born.month, born.day))
行操作
1. 删除满足条件的行
# 使用比较符
df_clear = df.drop(df[df['age']<18].index)
df_clear = df.drop(df[(df['age']<18) | (df['age']>65)].index) #删除x小于0.01或大于10的行
#其他方法
#删除 学号=='20210105'的行
df_clear=df1[~df['学号'].isin(['20210105'])]
#删除 学号包含'2021'的行
df_clear=df1[~df['学号'].str.contains('2021')]
2. 相同结构的两张表,直接合并
pd.concat([df_up,df_down])
3.读取若干行
df.loc[3]#读第4行
df.loc[3:6]#读4-7行
列操作
1. 添加列
# 添加一列,计算其值
df['leg'] = df['number'] * 4
# 添加一列,直接赋值
df['head'] = 1
2. 删除列
2.1 作用于本身
del df['age']
2.2 不作用于本身
df2 = df.drop(['age'],axis=1)
此时 df 没变,df2 才是删除列后的结果。
axis的含义(更多):
2.3 对列使用函数 df.apply()
666666666666666666666666666666666666666666666
在这里插入代码片
3.调整列顺序(直接把想要的顺序写在后面)
df = df[['user', 'city']]
4.添加相同值的列
df['性别']='男'
5.取部分列
df['price'] #取单列
sd[['price','name']] #取多列:注意里面list列表,不然会报错误
df=pd.read_table('文件路径',index_col=0,usecols=[0, 1])#指定读取第一列、第二列
创建一个空的DataFrame(数据帧)
pd.DataFrame(columns=['A', 'B', 'C'], index=[0,1,2])
索引重排(删除原索引,新增0 1 2 3 …)
df.reset_index(drop=True)
drop=False
时,保留原索引。
让索引从 1 开始
df_clear.index=df_clear.index+1
pandas.Dataframe转字典
da1 = df.to_dict(orient='records')
da2 = df.to_json(orient='records')
排序
dfs.sort_values("出版年",inplace=True,ascending=False)#根据“出版年”这一列,从大到小排序 #True(升)/False(降)
指定表头
df.columns=['AAA','BBB','CCC']#指定表头