前言:
当前咱们对“python中空一行”都比较关切,我们都想要学习一些“python中空一行”的相关文章。那么小编在网摘上网罗了一些对于“python中空一行””的相关内容,希望你们能喜欢,兄弟们一起来学习一下吧!功能
代码
引入pandas
import pandas as pd
引入sqlite3
import sqlite3
读取csv
df = pd.read_csv(r'C:\…….csv')
读取csv,中文乱码
df = pd.read_csv(r'C:\…….csv',encoding='GB18030')
读取csv,中文乱码
df = pd.read_csv(r'C:\…….csv',encoding='gbk')
读取xlsx
df = pd.read_excel(r'C:\…….xlsx')
上下合并df1和df2
df = pd.concat([df1,df2])
保存xlsx
df.to_excel(r'C:\……xlsx')
左merge
data3=data1.merge(data2,how='left',on='列名')
删除所有单元格为空的行
df = df.dropna()
仅保留该列有重复的行
df = df[df.duplicated(['列名'],keep=False)]
取该列的多有单元格值
for i in df['列名']:
取该列单元格值的前5个字符
df['列名'].replace(i,i[0:5],inplace=True)
删除该列中符合条件值的行
df = df.drop(df[df['列名']=='条件值'].index)
以列名1和列名2排序
df = df.sort_values(by=['列名1', '列名2'], ascending=[True, True])
将下一行添加到上一行后面
df = df.add_suffix('上一行列名').assign(**df.shift(-1).add_suffix('下一行列名'))
删除列名1不等于列名2的行
df = df.drop(df[df['列名1'] != df['列名2']].index)
将该列的单元格属性改为日期时间类型
df['列名']=pd.to_datetime(df['列名'])
计算列名1于列名2的时间差
df['date_diff']=pd.to_datetime(df['列名1'])-pd.to_datetime(df['列名2'])
将时间差列的单元格值设置为天数
df['date_diff']=df['date_diff'].dt.days
以列名数据透视求和
df_pivot_table = pd.pivot_table(df,index="列名",values="求和列",aggfunc="sum")
重置索引(取消合并单元格并填充)
df = df.reset_index()
sqlite3连接
con = sqlite3.connect(r"C:\……\db.sqlite3")
sql读取数据
sql = "SELECT * FROM db"
读取sqlite3数据库数据
df = pd.read_sql(sql,con)
取某5列
df = df.loc[:,['列名1','列名2','列名3','列名4','列名5']]
按分组列分组后对计数列进行计数
df_groupby = df.groupby(['分组列'])['计数列'].count()
取列名1或者列名2或者列名3符合条件值的数据
df=df[(df['列名1']=='条件值')|(df['列名2']=='条件值')|(df['列名3']=='条件值')]
取列名中等于条件数字的数据
df=df[df['列名']==条件数字]
取列名中等于条件值的数据
df=df[df['列名']=='条件值']
删除列名中等于条件值的行
df=df[~(df['列名']=='条件值')]
取某5列
df=df[['列名1','列名2','列名3','列名4','列名5']]
df1与df2和df3合并形成总df
df=df1.append(df2).append(df3)
删除列名中空值的行
df=df.dropna(subset=['列名'])
以分组列1和分组列2进行分组统计列1和统计列2的求和
df_sum = df.groupby(by=['分组列1', '分组列2'])['统计列1', '统计列2'].sum()
删除3个列重复的所有行(重复的都删除)
df=df.drop_duplicates(subset=['列名1','列名2','列名3'],keep=False)
删除3个列重复的行(保留第一行)
df=df.drop_duplicates(subset=['列名1','列名2','列名3'],keep="first")
删除3个列重复的行(保留最后一行)
df=df.drop_duplicates(subset=['列名1','列名2','列名3'],keep="last")
用分列符号对分列列名进行分列
df['分列列名']=df['分列列名'].map(lambda x:x.split('分列符号'))
以分列后的列名的每个值重整每一行数据
df=df.explode('分列列名')
重命名列名
df=df.rename(columns={'列名1':'列名1新','列名2':'列名2新'})
以分列列名的数据列为原始数据通过分列符号分列后得到一个新的df
df=df['分列列名'].str.split('分列符号',expand=True)
取列名
df.columns=['列名1','列名2']
横向拼接df1和df2
df=pd.concat([df1,df2],axis=1)
重置索引列,并删除原来的索引
df=df.reset_index(drop=True)
删除符合条件值的行
df=df.drop(df[df['列名']=='条件值'].index)
所有空值修改为填充值
df=df.fillna(value='填充值')
删除列
df=df.drop('列名',axis=1)
将该列属性修改为数字
df['列名']=pd.to_numeric(df['列名'])
以多个列名数据透视求和
df_pivot_table=pd.pivot_table(df,index=['列名1','列名2','列名3'],values="求和列",aggfunc="sum")
保留前n列重复的行
df=df[df.duplicated(df.iloc[:,:n].columns,keep=False)]
删除前n列重复的所有行(重复的都删除)
df=df.drop_duplicates(subset=df.iloc[:,:n].columns,keep=False)
删除前n列重复的行(保留第一行)
df=df.drop_duplicates(subset=df.iloc[:,:n].columns,keep="first")
删除前n列重复的行(保留最后一行)
df=df.drop_duplicates(subset=df.iloc[:,:n].columns,keep="last")
删除空行空列
df = df.dropna()
删除数字大于n的行
df = df.drop(df[df['列名']> n].index)
删除数字等于n的行
df = df.drop(df[df['列名']==n].index)
删除日期小于该年月日的行
df = df.drop(df[df['日期列']<'yyyy-mm-dd'].index)
引入json
import json
建立空df
dataframe={ }
设置json文件路径
with open(r"C:\…….json") as file:
打开json文件
jsonfile=json.load(file)
历遍json文件得到matadata数据集
for metadata in jsonfile:
引入os
import os
建立空的列
series=[ ]
取得metadata的数据
value=matedata['主标题'][n]['副标题']
value1与value2组合形成df
df[value1]=value2
设置os操作文件夹
for root,dirs,files in os.walk(r"C:\……\文件夹",topdown=False):
历遍所有文件名
for name in files:
获取完整文件路径和文件名
file_path=os.path.join(root,name)
判断是否符合文件名后缀
if '文件名后缀' in file_path:
将值添加到列表
series.append(value)
获取文件路径中的文件名
filename=file_path.split('\\')[-1]
以第2行为标题行
df=pd.read_csv(file_path,sep='\t',header=1)
所有的series横向拼接成df
df=pd.concat(series,axis=1)
保存为csv文件
df.to_csv(r'C:\…….csv')
取得该列的值
value=df['列名']
赋值给列
df['列名']=value
设置serises第一行为df索引
df.index=serises[0:]
建立df
df=pd.DataFrame({'列名1':[1,2,3,4],'列名2':['V1','V2','V3','V4']})
建立列
series = pd.Series(["V1", "V2", "V3"])
获取第m行n列单元格
cell=df.loc[m,n]
删除整行空值行
df = df.dropna(axis=1,how='all')
删除整列空值列
df = df.dropna(axis=0,how='all')
取m行到n行
df=df.iloc[m:n,:]
某列符合该条件值的所在行号
n = list(df['列名']).index(条件值)
标签: #python中空一行