pandas中数据文件的读取——read_csv()和read_table()
read_csv() 读取以‘,’分割的文件到DataFrame
read_table()读取以‘/t’分割的文件到DataFrame,其中sep参数设置可以读取任意分隔符分割的文件,所以我们常用read_table()函数读取数据
#以下两条代码语句等价
A=pd.read_table('User_M.csv',sep=',')#读取csv文件
B=pd.read_csv('User_M.csv')
另外的技巧:使用header与names
#将header与names联合使用可以修改数据文件的列名
unames=['第一列的列名','第二列的列名','第三列的列名']
A=pd.read_table('User_M.csv',sep=',',header=None,names=unames)
#header=None表示不读取源文件列名,names=unames表示将读取的数据列名修改为unames
dataframe数据的写入:将dataframe写入成csv文件
pd.to_csv('Movie_idTo_title.csv')#文件存储位置为程序的当前文件夹,也可以指定文件路径
dataframe的连接:使用pd.merge()函数
#left和right均为dataframe
result = pd.merge(left, right)#采用默认连接会把具有相同列名的,相同行而不同值的数据删除
pd.merge()的具体用法见:https://blog.csdn.net/quincuntial/article/details/70990990
dataframe删除指定行或指定列:pd.drop()函数
pd.drop(['行'])#默认删除行
pd.drop(['列'],axis=1)#axis=1,删除列
dataframe删除重复的行或列:pd.drop_duplicates()函数
pd.drop_duplicates(subset=['movie_id'],keep='first',inplace=True)
#subset的默认值为subset=None表示考虑所有列
#keep='first'表示保留第一次出现的重复行,是默认值。keep另外两个取值为"last"和False,分别表示保留最后一次出现的重复行和去除所有重复行。
#inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本
dataframe对指定列或指定行进行排序:pd.sort_values()
pd.sort_values(axis=0,by='movie_id',inplace=True,ascending=True)
#axis=1,横向排序,默认即为纵向排序
#默认axis=0,by="列名";axis=1,by="行名"
#ascending:True则升序,默认降序
#inplace:布尔型,是否用排序后的数据框替换现有的数据框
dataframe对指定列或行统计词频:pd.value_counts()函数
pd.value_counts(a.values, sort=False,ascending=True)#统计电影类别词频
dataframe的完全复制,而不是引用原来的dataframe:copy.deepcopy()函数
import copy
data1= copy.deepcopy(data)
dataframe中的ix、iloc、loc区别:
#iloc主要使用数字来索引数据,而不能使用字符型的标签来索引数据
#loc则刚好相反,只能使用字符型标签来索引数据,不能使用数字来索引数据
#ix是混合型索引,数字字符均可以
dataframe中的columns和index
pd.columns=list(range(1,6041))#传入的必须是list
pd.index=range(1,1100)#传入的range类型