jx2=pd.DataFrame(jx1) a=re.findall(r'-(d)-',jx2['开票日期']) print('企业进项开票总月份数=',a) 为什么报错expected string or bytes-like object
时间: 2024-01-09 22:03:34 浏览: 105
报错"expected string or bytes-like object"是因为在使用正则表达式时,需要传入一个字符串或类似字节的对象作为输入。根据你提供的代码,出现报错的地方是在使用`re.findall`函数时。
可能的原因是`jx2['开票日期']`列中的数据类型不是字符串类型,而是其他类型,如数值型或日期型。因此,需要将其转换为字符串类型后再进行正则匹配。
你可以尝试将`jx2['开票日期']`列转换为字符串类型,然后再使用正则表达式进行匹配。可以使用`astype`方法将其转换为字符串类型,如下所示:
```python
jx2['开票日期'] = jx2['开票日期'].astype(str)
```
然后再执行`re.findall`函数进行正则匹配,应该就不会再出现报错了。
相关问题
a = pd.DataFrame(a) d = pd.DataFrame(d)注释代码
这两行代码是将变量 a 和 d 转换成 Pandas 中的 DataFrame 格式。DataFrame 是 Pandas 库中的一个数据结构,可以理解为是一个二维表格,类似于 SQL 中的表格。这个数据结构可以方便地进行数据分析和处理。在这里,将 a 和 d 转换成 DataFrame 格式,可能是为了后续对它们进行一些统计分析或者可视化处理。
data = pd.DataFrame(A, columns=['Data']) ,data = pd.DataFrame(B, columns=['r-t'])如何放到一个excel表中
可以使用 Pandas 库的 ExcelWriter 类来将两个 DataFrame 写入同一个 Excel 文件。下面是一个示例代码:
```python
import pandas as pd
# 创建两个 DataFrame
A = [1, 2, 3]
B = ['a', 'b', 'c']
data1 = pd.DataFrame(A, columns=['Data'])
data2 = pd.DataFrame(B, columns=['r-t'])
# 将两个 DataFrame 写入同一个 Excel 文件
with pd.ExcelWriter('data.xlsx') as writer:
data1.to_excel(writer, sheet_name='Sheet1', index=False)
data2.to_excel(writer, sheet_name='Sheet1', startcol=2, index=False)
```
在这个例子中,我们使用 `ExcelWriter` 类创建了一个名为 `data.xlsx` 的 Excel 文件,并将两个 DataFrame 写入同一个工作表 `Sheet1` 中。`startcol` 参数指定了第二个 DataFrame 写入的起始列,这里设置为 2,表示从第三列开始写入。`index=False` 参数表示不将 DataFrame 的行索引写入 Excel 文件中。
阅读全文