Pandas
2022年9月28日大约 1 分钟
本文主要研究 pandas, 主要是一些常见的用法和笔记。
DataFrame
DataFrame 是 pandas 中常用的数据结构,掌握其用法对整体 pandas 使用的理解十分重要。
read_csv()
💚💚💚 不只是可以读 csv 哦。
在实际场景中,笔者存在一个需要读取大的 txt 文件的操作,使用 read_csv()
接口可以实现这个功能,在项目中的示例代码如下所示:
import pandas as pd
def get_all_pattern_pandas(self, file=None):
df = pd.read_csv(file, header=None, sep='\t')
all_lines = df.itertuples()
for rows in more_itertools.grouper(all_lines, self.pattern_len, incomplete='ignore'):
pass
上述代码中有些细节需要注意:
pd.read_csv()
返回了 df 对象;我们传入了header=None
可以使得不产生制表的 header, 而sep='\t'
就是分割 txt 文件常用的分割符df.itertuples()
可以产生 df 的迭代器对象,是比较快速的迭代方法more_itertools.grouper()
是滑动窗口的接口,可以参考 <Itertools> 那篇文章
Example
获取某列的数据
我们有时候可能只需要获取某一列的数据,其用法如下:
df = pd.read_csv(self.s.application_log_file, sep=' ', usecols=[16])
print(df.value_counts().sort_values(ascending=False))
df.value_counts().sort_values(ascending=False).to_frame().to_html('tiktok.html')
在例子中,我们使用空格进行分割,然后拿到第 16 列的数据;注意经过测试,这个数组是不能指定 -1 等值的,只能从前往后开始数。