Python pandaps xls导入在删除某些行时遇到困难+

2024-09-28 01:22:51 发布

您现在位置:Python中文网/ 问答频道 /正文

[miniconda,python 3]

要下载的my data.xls:(密码:stack) Download .xls

0) 您可以注意到,我的xls文件在第一行有大的合并单元格,在第2行和第3行也有一些合并单元格。这是个问题吗?如果这是个问题-我能用某种方法把它们拆开吗?在

(一) 我想删除这个xls的第一行,因为没有对我重要的信息。我想问题是行被合并了?我想用df=测向下降([0]),但它没有删除这个巨大的第一行,而是删除了带有列标题的行(以“ID klienta”开头)。为什么?在

(二) 在去掉第一行之后,我想处理来自不同列的一些数字(在我的示例中,我希望将数据与“Stav”列分开)。我该怎么做?我曾在某个地方看到过,只通过行/列的头名称(字符串)来索引行/列是可能的。例如,我想使用:Stav=df['Stav']

到目前为止,我的代码是:

import pandas as pd
import numpy as np

print("\n\n*********************************************")
print("My xls processing script\n")
print("*********************************************\n")

#load data 
df = pd.read_excel("file.xls")

#My unsucessful attempt to get rid of first row 
#uncomment this and it will remove the second row instead of the first row
#df = df.drop([0])

#print preview of 6 rows 5 columnts
print(df.iloc[0:5, 0:4])
print("\n\n")

#My unsuccessful attempt to get column date with header 'ID'
Stav = df['Stav']
print(Stav)

控制台输出:

^{pr2}$

Tags: oftoimportiddfdatagetmy
2条回答

我想你想让header函数选项在read-in上

df = pd.read_excel("file.xls", header =[0,1,2])

然后可以删除不需要的标题:

^{pr2}$

或者是一些类似的东西。由于变量名分散在两个子标题中,所以工作表有点混乱。我会把它清理干净,这样他们就在同一条线上。在

或者保留所有标题并查看以下内容: How do I change or access pandas MultiIndex column headers?

查看输入的excel文件的屏幕截图以及打印的数据框,您遇到的问题可能是由于第二行和第三行中的合并单元格造成的。在

我建议使用docs(Link Here)中概述的pandas.DataFrame.to_excel的一些参数。尤其是,header和{}应该对您有所帮助。在

我在下面提供了一个例子,在这个例子中,我创建了一个excel文件(.xlsx),它复制了合并单元格的问题。然后,我将.xlsx复制为.xls,并使用pandas.DataFrame.to_excel和{}来读它。在

import pandas as pd
import numpy as np
import shutil

# Creating a dataframe and saving as test.xlsx in current directory
df = pd.DataFrame(np.random.randn(10, 3), columns=list('ABC'))
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', startrow=3, index=False, 
header=False)
wb  = writer.book
ws = writer.sheets['Sheet1']

ws.merge_range('A1:C1', 'Large Merged Cell in first Row')
ws.merge_range('A2:A3', 'A')
ws.merge_range('B2:B3', 'B')
ws.merge_range('C2:C3', 'C')

wb.close()

print(df)
#copying test.xlsx as a .xls file
shutil.copy(r"test.xlsx" , r"test.xls")

new_df = pd.read_excel('test.xls', header = 0, skiprows = [0,2])
print(new_df)

期望测试.xls文件: Expected test.xls

print(new_df)应显示:

^{pr2}$

相关问题 更多 >

    热门问题