【问题标题】:Looping columns [duplicate]循环列[重复]
【发布时间】:2018-11-24 04:02:25
【问题描述】:

我很惊讶,也许有人可以解释发生了什么......

当我运行这个非常简单的例子时:

df = pd.DataFrame(columns=['A','B','C'])
results = pd.DataFrame(columns=df.columns)
for i, col in enumerate(df):
   print('.....'+col)
   result = [print(col) for i in range(2)]  

结果是(第一次未知col):

.....A
A
A
.....B
A
A
.....C
A
A

但我真正期待的是:

.....A
A
A
.....B
B
B
.....C
C
C

发生了什么事??

【问题讨论】:

  • 我对其进行测试并在 pandas 0.23.0 中获得预期的输出
  • 简短的回答是不要在列表理解中使用print。有关详细信息,请参阅标记的重复项。
  • 按预期工作
  • @jpp 我不同意这个副本。这可能是与 Python 2 的列表解析泄漏变量有关的问题。
  • @user2285236,但该帖子标记为[python-3.x].. 不过,如果您认为这种行为值得解释,请随时重新打开。

标签: python-3.x pandas


【解决方案1】:

我刚刚跑了:

import pandas as pd

df = pd.DataFrame(columns=['A','B','C'])
results = pd.DataFrame(columns=df.columns)
for i, col in enumerate(df):
   print('.....'+col)
   result = [print(col) for i in range(2)] 

它返回了:

Out[]:
..A
A
A
..B
B
B
..C
C
C

Python 3.6.5
熊猫 0.20.3

【讨论】:

  • 这似乎是我的 IDE PyCharm 的问题.....如果我在控制台中运行它,它可以工作,但在 PyCharms 中却不行。谢谢
猜你喜欢
  • 2018-10-29
  • 2019-03-11
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
相关资源
最近更新 更多