数据1
A B C D E <--- columns
a b c d e
a b c d e
a b c d e
result what i want
A B C D E <--- columns
A B C D E <--- columns
A B C D E <--- columns
a b c d e
a b c d e
a b c d e
我搜索了这个,但最终失败了:)
我如何获得好的结果?我请求你的帮助。谢谢你
非常感谢你
转换为 Excel 时,创建了一个新的空列。
test
a b c d e f g h i j k l m n o p q r s t u v w x y
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
dir_path = os.path.dirname(os.path.realpath(__file__))
df = pd.read_excel(dir_path + '/import/sample.xlsx', header=0)
headers = [list(df.columns), list(df.columns), list(df.columns)]
df.columns = pd.MultiIndex.from_arrays(headers)
writer = pd.ExcelWriter(dir_path + '/export/sample.xlsx', options={'strings_to_urls': False}, )
df.to_excel(writer, sheet_name='result')
writer.save()
result
a b c d e f g h i j k l m n o p q r s t u v w x y
a b c d e f g h i j k l m n o p q r s t u v w x y
a b c d e f g h i j k l m n o p q r s t u v w x y
<<<<---- empty row ---->>>> 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
我试图摆脱它但失败了。
df = df[df['a'] != ""]
最佳答案
df.columns = pd.MultiIndex.from_arrays([df.columns] * 3)
print (df)
A B C D E
A B C D E
A B C D E
0 a b c d e
1 a b c d e
2 a b c d e
如果需要自定义
MultiIndex
:L = [list('abcde'), list('fghij'), list('klmno')]
df.columns = pd.MultiIndex.from_arrays(L)
print (df)
a b c d e
f g h i j
k l m n o
0 a b c d e
1 a b c d e
2 a b c d e
也可以使用接下来的 2 个函数来创建
MultiIndex
:MultiIndex.from_tuples
MultiIndex.from_product
编辑:
空行是 bug ,解决方案是 here :
writer = pd.ExcelWriter("file1.xlsx")
headers = pd.DataFrame(df.columns.tolist()).T
headers.to_excel(writer, header=False, index=False)
df.columns = pd.Index(range(len(df.columns)))
df.to_excel( writer, header=False, index=False, startrow=len(headers))
writer.save()
关于pandas - python pandas数据帧写多行标题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49707231/