python - 如何在 jinja2 中循环 pandas 数据框的行和列?

标签 python pandas for-loop dataframe jinja2

我刚刚开始使用 jinja2 并尝试从数据帧生成文本行。我的模板 weather.txt 如下所示:

{% for key, value in x.iterrows %}
    The day {{ df["date"] }} was {{ df["weather"] }}.
{% endfor %}

数据框天气看起来像这样:

      date        weather
0  2017-03-31      warm
1  2017-04-21      cold
2  2017-07-01      rainy

现在我真的不知道如何从中生成所需的输出。当我使用此代码时:

template = env.get_template("weather.txt")

output = template.render(x = weather)
print(output)

我得到TypeError:'method'对象不可迭代

最佳答案

正如警告所述,iterrows 是一种方法,因此您需要使用括号:

{% for _, row in weather.iterrows() %}
    The day {{ row["date"] }} was {{ row["weather"] }}.
{% endfor %}

假设您的数据框确实名为weather,这应该可以工作

关于python - 如何在 jinja2 中循环 pandas 数据框的行和列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50762922/

相关文章:

python - Pandas:有没有办法 1)在数据框中的每一行上方添加两个新的空行,以及 2)用相同的值填充行?

r - 组合 R 中每列和组的数据框中的所有数据

c++ - 使用 '&'进行迭代时 'auto'符号有什么作用

python - 如何根据配置文件(文本或CSV)中的用户输入过滤pandas数据框配置将告诉过滤器值和过滤列

python - 如何显示嵌套列表中的所有一个值?

python - 根据另外两个列和表在 Pandas 中创建列

python - 比较 Dataframe 中的每个值以创建新的 Dataframe

c++ - 为什么这个 for 循环不停止?

python - 为什么重写 save() 方法会被绕过?

python - 在 Python Vader Sentiment 中添加特例习语