【问题标题】:Python Iterating Dataframe then output formatting issuesPython迭代数据框然后输出格式问题
【发布时间】:2021-10-12 15:01:26
【问题描述】:

此代码用于遍历数据框并输出所需的信息,但我遇到了问题,正在寻找有关如何更正所需输出格式的建议。不太关心输出到 excel - 只需要“重新格式化”的帮助

到目前为止的代码...

import pandas as pd

boston = pd.read_excel('e1 Copy.xlsx')

for profile in boston.iterrows():

    print(profile)   

给定这个数据集

个人资料.....日期............凌晨 1 点............凌晨 2 点......凌晨 3 点

E1 ......1998 年 1 月 1 日......A............B............ C

E1 ......1998 年 1 月 2 日......D............E............ F

E1 ......1998 年 1 月 3 日......G............H............我

将以下输出生成到名为 Output.xlsx 的 excel 文件中

E1.......1/1/1999.......1AM......A

E1.......1/1/1999.......2AM......B

E1.......1999 年 1 月 1 日............凌晨 3 点......C

E1.......1/2/1999.......1AM......D

E1.......1/2/1999.......2AM......E

E1.......1/2/1999.......3AM......F

E1.......1/3/1999.......1AM......G

E1.......1/3/1999.......2AM......H

E1.......1/3/1999.......凌晨 3 点......我

【问题讨论】:

  • 为什么输出日期都是1/1/1999
  • 糟糕 - 我会改正
  • 已更正!谢谢!

标签: python python-3.x dataframe loops for-loop


【解决方案1】:

如果您的 df 看起来像:

  Profile      Date 1AM 2AM 3AM
0      E1  1/1/1998   A   B   C
1      E1  1/2/1998   D   E   F
2      E1  1/3/1998   G   H   I

那么你可以使用.melt:

print(df.melt(["Profile", "Date"]).sort_values(by="Date"))

打印:

  Profile      Date variable value
0      E1  1/1/1998      1AM     A
3      E1  1/1/1998      2AM     B
6      E1  1/1/1998      3AM     C
1      E1  1/2/1998      1AM     D
4      E1  1/2/1998      2AM     E
7      E1  1/2/1998      3AM     F
2      E1  1/3/1998      1AM     G
5      E1  1/3/1998      2AM     H
8      E1  1/3/1998      3AM     I

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 2017-07-06
    相关资源
    最近更新 更多