【问题标题】:Why this Python "loop code" does not work?为什么这个 Python“循环代码”不起作用?
【发布时间】:2019-12-11 15:09:02
【问题描述】:

为什么这段代码不起作用?

ffi5_1 = pd.read_csv('/Users/d/bm_ffi5_1.csv')
ffi5_2 = pd.read_csv('/Users/d/bm_ffi5_2.csv')
ffi5_3 = pd.read_csv('/Users/d/bm_ffi5_3.csv')
ffi5_4 = pd.read_csv('/Users/d/bm_ffi5_4.csv')
ffi5_5 = pd.read_csv('/Users/d/bm_ffi5_5.csv')

s_list = list(range(1,6))

for x in s_list:
    ffi5_x.jdate = pd.to_datetime(ffi5_x.jdate)

这里的jdate是dataframe的列。

【问题讨论】:

  • 欢迎来到 StackOverflow。请花时间阅读how to provide a great pandas example 上的这篇文章以及如何提供minimal, complete, and verifiable example 并相应地修改您的问题。 how to ask a good question 上的这些提示也可能有用。
  • 您需要添加您想要做的事情,您尝试过的事情背后的思考过程。而且这段代码缺乏基本的语法,我建议你在尝试一些异国情调之前学习基本的python编码和语法。
  • 循环体在哪里?
  • 好吧,因为你有一个缩进错误,而且ffi5_x 没有定义。
  • 大家感谢所有评论。这是我第一个笨拙的问题。请理解!

标签: python pandas loops variables repeat


【解决方案1】:

您的代码可能失败并显示您尝试引用的消息 一个不存在的变量ffi5_x

为了将DataFrame名称中的x替换为当前值 x - 循环控制变量(在 2 个位置),将循环更改为:

for x in s_list:
    exec('ffi5_' + str(x) + '.jdate = pd.to_datetime(ffi5_' + str(x) + '.jdate)')

【讨论】:

  • 你是最棒的!非常感谢!
猜你喜欢
  • 2023-04-05
  • 2017-04-09
  • 2020-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 2019-12-02
  • 2013-12-13
相关资源
最近更新 更多