系列的真值不明确 - Python-Docx
Truth Value of a Series is Ambiguous - Python-Docx
尝试从 pandas 数据框中获取值并使用 python-docx:
将其插入到文档中
import docx
from docx.shared import Inches
import numpy as np
import pandas as pd
df = pd.DataFrame({'A':(1,2,3,4,5),'B':('a','b','c','d','e')})
document = docx.Document()
p = document.add_paragraph(df.loc[df.B=='c', 'A'].astype('str'))
但是我得到这个错误:
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我发现很多关于此问题的堆栈溢出的参考资料,但不清楚我的情况如何关联,因为我的代码只有 returns 这个可重新运行的示例和实际数据中的一个结果。我已经尝试了 df.loc[df.B=='c', 'A']
的几种变体,但没有得到不同的结果。
编辑:下面引用的可能重复项与逻辑参数有关。在我的例子中,问题是我试图用一个系列来代替一个值。 DYZ在下面概述了解决方案。
我 python-docx 似乎不喜欢 float 数据类型,所以我尝试转换为字符串,但自然没有解决问题。
编辑:python-docx 只需要一个字符串。
#This works:
p = document.add_paragraph('1')
#This doesn't:
p = document.add_paragraph(1)
#however the error is unrelated to the issue highlighted above.
如果有人能向我强调我做错了什么,我将不胜感激,因为这让我很困惑。
我今天早上安装了 python-docx,所以它是最新版本,即 python-docx-0.8.10.
方法document.add_paragraph
需要一个字符串(您应该已经阅读了文档)。相反,您传递了一个 pandas 系列。如果要添加多个段落,则需要一个循环。
paragraphs = df.loc[df.B=='c', 'A'].astype('str').values
for paragraph in paragraphs:
document.add_paragraph(paragraph)
尝试从 pandas 数据框中获取值并使用 python-docx:
将其插入到文档中import docx
from docx.shared import Inches
import numpy as np
import pandas as pd
df = pd.DataFrame({'A':(1,2,3,4,5),'B':('a','b','c','d','e')})
document = docx.Document()
p = document.add_paragraph(df.loc[df.B=='c', 'A'].astype('str'))
但是我得到这个错误:
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
我发现很多关于此问题的堆栈溢出的参考资料,但不清楚我的情况如何关联,因为我的代码只有 returns 这个可重新运行的示例和实际数据中的一个结果。我已经尝试了 df.loc[df.B=='c', 'A']
的几种变体,但没有得到不同的结果。
编辑:下面引用的可能重复项与逻辑参数有关。在我的例子中,问题是我试图用一个系列来代替一个值。 DYZ在下面概述了解决方案。
我 python-docx 似乎不喜欢 float 数据类型,所以我尝试转换为字符串,但自然没有解决问题。
编辑:python-docx 只需要一个字符串。
#This works:
p = document.add_paragraph('1')
#This doesn't:
p = document.add_paragraph(1)
#however the error is unrelated to the issue highlighted above.
如果有人能向我强调我做错了什么,我将不胜感激,因为这让我很困惑。
我今天早上安装了 python-docx,所以它是最新版本,即 python-docx-0.8.10.
方法document.add_paragraph
需要一个字符串(您应该已经阅读了文档)。相反,您传递了一个 pandas 系列。如果要添加多个段落,则需要一个循环。
paragraphs = df.loc[df.B=='c', 'A'].astype('str').values
for paragraph in paragraphs:
document.add_paragraph(paragraph)