为啥这个 Python“循环代码”不起作用?

Posted

技术标签:

【中文标题】为啥这个 Python“循环代码”不起作用?【英文标题】: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的列。

【问题讨论】:

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

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

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

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

【讨论】:

你是最棒的!非常感谢!

以上是关于为啥这个 Python“循环代码”不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Python:为啥这个程序不起作用?

为啥外部链接在构建后在 phonegap 应用程序上不起作用

为啥这个 python 闭包不起作用?

为啥 pull-right 类在 bootstrap 版本 4.1.0 上不起作用? [复制]

为啥这个来自 python 的 bash 调用不起作用?

为啥 ngfor 指令不起作用,尽管我在 Typescript 类中创建了正确的对象