python - 在 Pandas Dataframes 中查找单个文件的第一行和最后一行

标签 python pandas dataframe

我有一个由多个 .fits 文件组成的 Pandas Dataframe,每个文件都包含多个带有单独标签的列。我想提取一列并创建包含所述列的第一行和最后一行的变量,但我很难为单个 .fits 文件而不仅仅是整个 Dataframe 完成此操作。任何帮助,将不胜感激! :)

这是我读取文件的方式:

path = '/Users/myname/folder/'
m = [os.path.join(dirpath, f)
    for dirpath, dirnames, files in os.walk(path)
    for f in fnmatch.filter(files, '*.fits')]

^^^ 这递归地搜索我的目录,其中包含许多子文件夹中的多个 .fits 文件。

dataframes = []
for ii in range(0,len(m)):
    data = pd.read_csv(m[ii], header = 'infer', delimiter = '\t')
    d = pd.DataFrame(data)
    top = d['desired_column'].head()
    bottom = d['desired_column'].tail()
    First_and_Last = pd.concat([top,bottom])

我尝试对 Pandas Dataframes 使用 .head 和 .tail 命令,但我不确定如何正确使用它来实现我想要的。对于我在 fits 文件中的读取方式,以下代码给出了最开始的几行和最后几行(确切地说是 5 行,头部和尾部的默认值为 5),如下所示:

0       2.456849e+06
1       2.456849e+06
2       2.456849e+06
3       2.456849e+06
4       2.456849e+06
1118    2.456852e+06
1119    2.456852e+06
1120    2.456852e+06
1121    2.456852e+06
1122    2.456852e+06

我想要做的是尝试为我想要的特定列获取每个 .fits 文件的第一行和最后一行,而不仅仅是包含 .fits 文件的 Dataframe。按照我阅读 .fits 文件的方式,Dataframe 似乎将所有文件连接在一起。关于如何实现此目标的任何提示?

最佳答案

如果你只想要第一行:

top = d['desired_column'].head(1)

如果你只想要最后一行:

bottom = d['desired_column'].tail(1)

我没有发现“Dataframe 似乎有点将所有文件连接在一起”的问题。你能澄清一下这个问题吗?
顺便说一句,在 data = pd.read_csv(m[ii], header = 'infer', delimiter = '\t') 之后,data 已经是一个 DataFrame 。因此,d = pd.DataFrame(data) 是不必要的。

关于python - 在 Pandas Dataframes 中查找单个文件的第一行和最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43838742/

相关文章:

python - python可以运行 "persistent shell"吗

python - 如何使用 Python boto3 检索 VPC ID 和子网 ID?

python - 创建独立于 python 版本的 python c 模块?

apache-spark - Spark 中的 saveAsTextFile 函数是否将数据传输到驱动程序?

R 中的 rbind 给出了一个奇怪的行名

python - 使用另一个数据帧同一列中的值更新数据帧中的列

python-3.x - 从包含数字、非数字和数字的字符串中提取第一个数字序列

python - Pandas Apply 函数引用列名

python - Pandas :功能和应用于系列之间的时间差异

python - Pandas 根据索引加入两个数据框