导航

11.pandas学习

Posted on 2025-02-14 15:59  小熊_努力学习版  阅读(25)  评论(0)    收藏  举报

pandas学习网址:https://www.runoob.com/pandas/pandas.html

Pandas库

pandas是基于numpy的库,其中中提供了Series和DataFrame两个数据类型,可以很好的对时间序列和表格数据进行处理和分析,同时还可以方便将数据到处到excel表格中。

1. pandas序列——Series

  • 创建Series
  • index和name:series只有行标签(index)和name,而DataFrame有行列标签。
  • series数据类型常用方法:
    1.loc、iloc索引序列数值:my_series.loc['标签名']采用标签索引;my_series.loc[int]采用位置顺序索引
    2.my_series.values:获取全部值
    3.my_sersies.index:获取
#	创建序列
data_series = pd.Series(np.arange(1,10), index = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'])
print(f'创建的序列为\n{data_series}\n创建的缺失值序列为\n{data_nan}')
a = data_series.loc['a'] == (data_nan.iloc[0])

2. pandas二维数据表格——DataFrame

  • 创建DataFrame数据表格 df = pd.DataFrmae(data, index='',columns=''),其中data一般是numpy.array()矩阵;也可以是字典,但是字典的键值自动为columns标签,且是按照行进行储存的(也就是这个键对应的数据为这个列标签下的列数据)。所以按照字典方式进行储存,可以不用指定columns
    注意:若没有指定标签,则默认标签是以0开头的数字
  • 向DataFrame二维数据表格添加数据
    新添加行列推荐统一采用pd.concat([data,newline],aixs = 0,ignore_index = True)aixs = 0(默认值)按行进行添加数据,axis = 1按列添加数据。ignore_index = True是指忽略当前的行索引,创建连续索引,若原来有特定的标签可以不写。
    在使用时有以下几点注意事项:1.添加行时,numpy创建的序列为列序列,若要将其视为一行进行添加需要多加一个[]。2.添加行时,列标签要采用与原数据集相同的标签。3.concat要求数据必须为Series或者DataFrame类型。
# 1.使用 concat 方法将新行添加到 DataFrame 中 
# 假设 temp_ls 是你想要添加的新行的数据
new_row = pd.DataFrame([temp_ls], columns=data.columns)
data = pd.concat([data, new_row], ignore_index=True,axis = 0)
"""特别注意添加单行数据到DataFrame中要多加一个中括号[]才会被识别为一行,例如在 
DataFrame中np.arange(1,5)是4行1列的数据,[np.arange(1,5)]才是1行4列的数据,
也就是[[1,2,3,4]],且concat是连接多个DataFrame的函数,必须将所添加数据转换为
DataFrame类型,同时列表签也要相同,不然不会添加到对应的列下方,而是另起一列。此外还要注意行标签的索引要连续,ignore_index = True意思是忽略当前行索引,创建一个新的连
续行索引。如果有特定的行标签就不用指定这个。"""
# 2.也可以采用获取数据表的行数来索引进行创建新行(因为python索引是从0开始的)(这个最简单)
data.loc[len(data)] = temp_ls #data.loc[data.shape[0]] = temp_ls
"""temp_ls为DataFrame类型,只要是数组即可而concat连接必须要求数据为Sreies或者DataFrame"""
# 3. 添加新列
"""不同于添加新行,dataframe可直接对列进行添加,也可以采用concat指定列"""
# 通过索引添加新列(只有列才能通过这种方式添加)
data['newline'] = np.arange(1,data.shape(0)+1)
# 通过concat合并添加
newline2 = pd.DataFrame({'newline2':np.arange(1,data.shape[0]+1)})
data = pd.concat([data,newline2],aixs = 1)
  • 删除行列
    采用data.drop('索引',axis= 0 ) axis= 0 默认值,默认从行标签中寻找索引并删除该行,axis = 1 索引列标签并删除该列。
  • 数据读写(excel)
    读取:pd.read_csv('file_name')、pd.read_excel('file_name')
    写入:data.to_csv('out_file')、data.to_excel('out_file')
    详见 https://www.runoob.com/pandas/pandas-csv-file.html