我想用python::as-IS在一个表中转换数据,如下所示
未来
当我尝试使用下面的代码时,它给出的输出如下所示
import numpy as np
import pandas as pd
import openpyxl
dfs = pd.read_excel('test.xlsx', sheet_name=None,header=None)
tester=dfs['data'].values.tolist()
keys = list(zip(*tester))[0]
seen = set()
seen_add = seen.add
keysu= [x for x in keys if not (x in seen or seen_add(x))]
values = list(zip(*tester))[1]
a = np.array(values).reshape(int(len(values)/len(keysu)),len(keysu))
list1=[keysu]
for i in a:
list1.append(list(i))
df=pd.DataFrame(list1)
df.to_excel('test1.xlsx',index=False,header=False)
实际上,您需要做}。在
pivot
,而不是{尝试:
df.pivot(index='Hierarchy', columns='Fiscal_Mo', values='Amount').fillna('')
。在最后的}的组合,例如
fillna('')
是用来替换不存在的NaN
值的Fiscal_Mo
和{201802
/A
。在完整代码:
关于您的评论的评论:它包含
hierarchy
是用 小写h
。也许这就是你问题的根源?在编辑
也许
Hierarchy
是数据帧的索引。在在本例中,
pivot
表的索引是通过 源数据帧的索引,因此index
参数应该被省略。在创建数据帧的相应代码是:
^{pr2}$创建
^{3}$pivot
表的命令是:编辑2
关于
header=None
的调查第一次尝试:我执行了:
并打印
df
,结果是:如您所见:
在这里,任何调用Pandas函数并传递“文本”的尝试 列名将失败。在
第二次尝试:我执行了:
注意,这次没有
header
参数,因此函数 假设header=0
-从第0行读取列名(初始)。在当我打印
df
时,结果是:如您所见:
现在您可以打电话给例如:
没有任何错误。在
请注意:
df.pivot(...)
不是pd.pivot(df, ...)
。显然你失败了 仔细阅读我的说明并将所有参数复制到代码中。在结论:从
read_excel
电话中删除header=None
,并 程序应该可以工作。在相关问题 更多 >
编程相关推荐