Python Panda读取Excel并拆分所需数据的部分
你好,我有一个excel文件,我需要排序。 我想分割数据的一部分。每个数据段由两个换行符分隔 我尝试使用Python Panda读取Excel并拆分所需数据的部分,python,pandas,dataframe,split,xlsx,Python,Pandas,Dataframe,Split,Xlsx,你好,我有一个excel文件,我需要排序。 我想分割数据的一部分。每个数据段由两个换行符分隔 我尝试使用str(dfs).split('\n\n')在\n\n上拆分数据,但它只进行了一次包含所有数据的拆分。简言之,没有分裂 迄今为止的代码: import pandas as pd file_name = "Data of 2020-09-12 .xlsx" dfs = pd.read_excel(file_name,'Sheet1') dfs = dfs.fillna(''
str(dfs).split('\n\n')
在\n\n上拆分数据,但它只进行了一次包含所有数据的拆分。简言之,没有分裂
迄今为止的代码:
import pandas as pd
file_name = "Data of 2020-09-12 .xlsx"
dfs = pd.read_excel(file_name,'Sheet1')
dfs = dfs.fillna('')
dfs = str(dfs).split("\n\n")
print(dfs)
这是数据帧的输出
这里有一种方法可以做到这一点。代码几乎是不言自明的,但如果有任何混淆,请随时询问 基本思想是首先迭代df,并找到df中空行的所有索引位置。 然后在这些位置上拆分df 解决方案假定第一列值为“”的行为空
import pandas as pd
file_name = "test.xlsx"
df = pd.read_excel(file_name)
df = df.fillna('')
df_temp = df.copy()
#find all section positions. We are doing p+2 since there are 2 empty rows dividing the section
pos = []
while True:
try:
empty = ''
p = df_temp.index[df_temp.iloc[:, 0] == empty][0]
df_temp = df_temp.iloc[p+2:]
pos.append(p)
except:
break
print(pos)
#Generate new dfs by splitting on the positions
list_df = []
start = 0
for p in pos:
print(start,p)
subdf = df.iloc[start:p]
list_df.append(subdf)
start = p+2
subdf = df.iloc[start:]
list_df.append(subdf)
#Print your dfs
for d in list_df:
print(d)