【随笔-3】用Python库Pandas进行表格数据处理

import pandas
参考链接 这篇讲得算很详细了,我就挑有用的写写。

这是一个表格
I. 基本操作相关
  • 把Dataframe结构转化为list或者array
a = x_train.to_numpy()
b = a.tolist()
  • 读取中文表格(指定个编码模式就好)
    这里设置了个index_col,建立主索引的那一列。
    index_col在表格索引上作用很大。
df = pd.read_csv("data.csv",encoding="gb2312", index_col ="Name") 
  • 单独提取某几列
retrieving multiple columns by indexing operator
first = data[["Age", "College", "Salary"]]
second = data["Age"]
  • 读取某个位置的cell的内容
a  = first.iloc[1][1]
  • tail/head

head() returns the first n rows(observe the index values). The default number of elements to display is five, but you may pass a custom number.
tail() returns the last n rows(observe the index values).

  • 读取表格的值
df.values[:,:]

读取结果是ndarray object of numpy module,如何转化为数组?

x_1 = np.asarray(x.values[:,:],'float64')
II. 索引相关
  • 用关键字进行索引,用到[Dataframe.loc[ ]]这个函数
  • 提取具有该索引对应关键字的所在的一整行
first = data.loc[["Avery Bradley", "R.J. Hunter"]]
  • 也可以指定特定行和列或者一整行
# 特定行
first = data.loc[["Avery Bradley", "R.J. Hunter"],
                   ["Team", "Number", "Position"]]
# 一整行
first = data.loc[:, ["Team", "Number", "Position"]]
  • 除了用关键字进行索引外,还可以用数字进行索引,需要用到[Dataframe.iloc[ ]]这个函数
row2 = data.iloc [[3, 5, 7]]
row2 = data.iloc [[3, 5, 7],[2,3]]
row2 = data.iloc [:, [1, 2]]
III. 按日期筛选数据
  • 数据整理:从string类型转变为时间戳,set_index也重要。
df.columns = [‘date‘,‘number‘]
df[‘date‘] = pd.to_datetime(df[‘date‘]) #将数据类型转换为日期类型
df = df.set_index(‘date‘) # 将date设置为index
print(df.index) #查看该索引
  • 按日期筛选数据,记得加上'loc()
# 获取2016和2017年的数据
print(df.loc['2016':'2017'].head(2))
# 获取某一月的数据
print(df.loc['2013-11':'2013-11'])
# 获取某一天数据
print(df.loc['2013-11-06':'2013-11-06'])
  • 将日期从今天起保存一周
df_last_week = df[df['date'] <= week_prior]
  • 数据切片:获取某个时间之前/之后的数据
print(df.truncate(after='2013-11'))
print(df.truncate(before='2017-02'))
IV. 数据清洗和筛选
  • 把表格中所有的- 替换成0
b = a.replace('―', 0) 
  • 如何给DataFrame数据赋值缺失值
    字符串类型的,使用None赋值为空值
    数值类型的,使用numpy.NaN赋值为空值
    时间类型的,使用pandas.NaT赋值为空值
b = a.replace('―', np.NaN) 
  • 缺失值的填充
    填充方式详见backfill函数
c = b.fillna(method='backfill', axis=0, inplace=False)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容