Dax*_*liz 5 python dataframe pandas
我有一个由多个 .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')]
Run Code Online (Sandbox Code Playgroud)
^^^ 这会递归地搜索我的目录,其中包含许多子文件夹中的多个 .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])
Run Code Online (Sandbox Code Playgroud)
我尝试将 .head 和 .tail 命令用于 Pandas Dataframes,但我不确定如何正确使用它来满足我的需求。对于我如何读取 fits 文件,以下代码为我提供了前几行和最后几行(准确地说是 5 行,head 和 tail 的默认值是 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
Run Code Online (Sandbox Code Playgroud)
我想要做的是尝试为我想要的特定列获取每个 .fits 文件的第一行和最后一行,而不仅仅是包含 .fits 文件的 Dataframe。按照我在 .fits 文件中读取的方式,Dataframe 似乎将所有文件连接在一起。关于如何实现这一目标的任何提示?
如果您只想要第一行:
top = d['desired_column'].head(1)
Run Code Online (Sandbox Code Playgroud)
如果您只想要最后一行:
bottom = d['desired_column'].tail(1)
Run Code Online (Sandbox Code Playgroud)
我没有发现“Dataframe 似乎将所有文件连接在一起”的问题。请你澄清一下这个问题好吗?
顺便说一句,之后data = pd.read_csv(m[ii], header = 'infer', delimiter = '\t'),data已经是一个DataFrame. 因此,d = pd.DataFrame(data)是没有必要的。