【发布时间】:2020-11-24 11:08:11
【问题描述】:
我有一个来自here 的示例excel 文件data1.xlsx,它有一个Sheet1,如下所示:
现在我想用openpyxl 或pandas 阅读,然后将它们转换为新的df1 和df2,最后我将它们保存为price 和quantity 表:
价格表:
和数量表
我使用过的代码:
df = pd.read_excel('./data1.xlsx', sheet_name = 'Sheet1')
df_list = np.split(df, df[df.isnull().all(1)].index)
for df in df_list:
print(df, '\n')
输出:
bj Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
0 year 2018.0 2019.0 2020.0 sum
1 price 12.0 4.0 5.0 21
2 quantity 5.0 5.0 3.0 13
bj Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
3 NaN NaN NaN NaN NaN
4 sh NaN NaN NaN NaN
5 year 2018.0 2019.0 2020.0 sum
6 price 5.0 6.0 7.0 18
7 quantity 7.0 5.0 4.0 16
bj Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
8 NaN NaN NaN NaN NaN
bj Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
9 NaN NaN NaN NaN NaN
10 gz NaN NaN NaN NaN
11 year 2018.0 2019.0 2020.0 sum
12 price 2.0 3.0 1.0 6
13 quantity 6.0 9.0 3.0 18
bj Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
14 NaN NaN NaN NaN NaN
bj Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
15 NaN NaN NaN NaN NaN
16 sz NaN NaN NaN NaN
17 year 2018.0 2019.0 2020.0 sum
18 price 8.0 2.0 3.0 13
19 quantity 5.0 4.0 3.0 12
我如何在 Python 中做到这一点?非常感谢。
【问题讨论】:
-
一个问题,你需要新的工作表名到原来的excel吗?还是新建excel文件?
-
请原文件
-
嗯,更难,需要更多时间。
-
现在最新版本的熊猫支持它,我的解决方案的最后一段如何工作?
-
添加
engine='openpyxl'后使用jupyter notebook时有效。
标签: python-3.x pandas dataframe openpyxl