也是最近的一个需求, 将一个 Excel 表, 多列转多行, 就把那种行的, 业务人员经常搞的那种垃圾表,给它转为咱熟悉的数据库表的形式, 多列转多行. 还要帮他们处理数据, 恶心得一批, 其实也不一定非要用什么 Pandas , 就循环遍历二维数据而已, 可能是, Pandas 比较很好, 就总是会将它作为我的第一选择, 事实证明, 它确实无敌强, 理论上能处理任何数据的骚操作.
这里我用我小伙伴的代码吧, 自己就不写了, 写啥代码, 要什么自行车.. 会搬砖, 收藏, 还有模仿, 这才是代码成功之道
df = pd.read_excel(file_path)
cols = df.columns.values
# 需要转置的那部分 DF
row_n = df.shap[0] -1
col_n = df.shap[1] - 4
ret = [] # 大列表来存储所有的
# 外层水平向右1列, 内层垂直向下遍历移多行
for i in range(col_n):
for j in range(row_n):
# 索引取值 iloc[行索引,列索引] 即可
lst = [
# 先取前四列, j+1 是为了跳过第 2 行
df.iloc[j+1, 0], df.iloc[j+1, 1],
df.iloc[j+1, 2], df.iloc[j+1, 3],
# 再取当前列的, 前两行, 和 对应的值 (i,j) 共3个字段
]
原文:https://www.cnblogs.com/chenjieyouge/p/12846780.html