-
查看当前工作目录使用os.getcwd(),改变当前工作目录os.chdir(路径),获得当前目录的绝对路径命令os.path.abspath('.')
-
相对路径就是在当前工作目录下的文件,可以直接打开data = pd.read_csv('train.csv')
-
绝对路径就是可以使用任何文件路径,
- 因为反斜杠用作转义字符,所以要使用双斜杠\
- 使用原始字符串r+路径,在路径前加上r,如:data = pd.read_csv(r'E:数分学习hands-on-data-analysis-master第一单元项目集合train.csv'),
- 使用/,如:data = pd.read_csv(r'E:/数分学习hands-on-data-analysis-master/第一单元项目集合/train.csv'),
-
read_csv和read_table,不同处之一是前者使用,作为字段分隔符,后者使用制表符(空格回车换行等),要想使得读取的数据格式一样,使用read_table(文件,sep = ',')
-
数据量过大时候,为避免内存不足,使用分块读取,返回的类型为Textfilereader不再是dataframe,
data = pd.read_csv('train.csv', chunkersize = 100) #每100行读取一次 for piece in data print(piece) #分块读取全部数据,在for循环内进行数据处理 data.get_chunk() # 读取一块
data.rename(columns={'PassengerId' : '乘客ID','Survived' : '是否幸存', 'Pclass' : '乘客等级(1/2/3等舱位)'}) #不改变原始数据内容,需要赋值给新的变量,假如直接修改源数据,请添加inplace = True
newcolums = ['乘客ID', '是否幸存', '乘客等级(1/2/3等舱位)']
data.columns = newcolunms # 直接修改了原始数据的列名
data = pd.read_csv('train.csv', names = newcolumns) #读取数据时直接重新命名列
查看数据的基本信息
df.info(): # 打印摘要 df.describe(): # 描述性统计信息 df.values: # 数据查看空值df.to_numpy() # 数据 (推荐) df.shape: # 形状 (行数, 列数) df.columns: # 列标签 df.columns.values: # 列标签 df.index: # 行标签 df.index.values: # 行标签 df.head(n): # 前n行 df.tail(n): # 尾n行 pd.options.display.max_columns=n: # 最多显示n列 pd.options.display.max_rows=n: # 最多显示n行 df.memory_usage(): # 占用内存(字节B)
#判断数据是否为空,为空的地方返回True,其余地方返回False data.isnull().head() # 查看所有输入是否有空值,有返回True,否则返回False data1.isnull().values.any() # 查看每一列是否有NaN: df.isnull().any(axis=0) # 查看每一行是否有NaN: df.isnull().any(axis=1)数据保存
data.to_csv('train_chinese.csv', encoding= 'GBK')
pandas基础
查看数据列名
# 链表推导式 [conlumns for conlumns in df] # 直接list list(df) #columns属性返回index 可以通过tolist转为list df.columns.tolist()看看数据的列和行
df['w'] #选择表格中的'w'列,使用类字典属性,返回的是Series类型 df.w #选择表格中的'w'列,使用点属性,返回的是Series类型 df[['w']] #选择表格中的'w'列,返回的是DataFrame属性 data[0:2] #返回第1行到第2行的所有行,前闭后开,包括前不包括后 data[1:2] #返回第2行,从0计,返回的是单行,通过有前后值的索引形式, data.iloc[-1] #选取DataFrame最后一行,返回的是Series data.iloc[-1:] #选取DataFrame最后一行,返回的是DataFrame查看具体数据
# 查看具体的数据,loc 是根据index查找;iloc是根据行号,列号,从0开始逐次加1 midage.loc[[100,105,108],['性别','客舱','乘客姓名']] midage.iloc[[100,105,108],[3,4,10]]删除行或者列
# axis默认等于0,即按行删除,这里表示按行删除第1行和第三行,inplace = True 会对原数据修改
df1.drop(labels=[1,3])
df1.drop(labels=range(1:4)) #删除第1行到第三行
# axis=1 表示按列删除,删除多列
df1.drop(labels=[列名,列名],axis=1)
df.drop([列名, 列名], axis=1)
df.drop(columns=[列名, 列名])
#删除多索引的dataframe中特定的索引组合
df.drop(index='cow', columns='small')
df.drop(index=('falcon', 'weight'))
df.drop(index='length', level=1)
#删除列的其他方法
del df[列名]
df.pop(列名)
条件筛选以及交并集操作
data[(data["a"]>2) & (data["b"]<9)] # 交集 & data[(data["a"]>2) | (data["b"]<9)] # 并集 | data[~(data["a"]>2)] # 补集 ~ #isin(序列):选出在序列中的数据 lis = [3, 4] data[data['a'].isin(lis)] # 对称差集:^属于集合A和B的并集但不属于A和B的交集的元素 data[(data['a']>=2) ^ (data['b']<=8)]#对称差集索引重置
midage = midage.reset_index(drop =True) #reset_index()函数的参数 #drop: 重新设置索引后是否将原索引作为新的一列并入DataFrame,默认为False #inplace: 是否在原DataFrame上改动,默认为False排序
# sort_values(by, axis=0, ascending=True, inplace=False, na_position='last') df.sort_values(by=['col1', 'col2']) # by的值可以是列名,或者列名列表 df.sort_values(by='col1', ascending=False) # 下降排序,默认上升排序 df.sort_values(by='col1', ascending=False, na_position='first') #空值优先 #sort_index(axis=0, ascending=True, inplace=False, na_position='last') df.sort_index() #默认按照行升序排列,同sort_valuespandas进行算术运算 转载请注明:
作者:vision
文章标题:copilot在Pycharm的应用
文章来源:1:城南花开;2:vision_wang的csdn



