【发布时间】:2021-07-08 23:47:23
【问题描述】:
我有一个这样的数据框:
如您所见,列标题“艺术与社会科学 1、470、905、1375”本身应该是一行,我想设置更合适的列标题,例如“课程、男性、女性、总计” .
本质上,我想将我当前的列标题作为一行数据向下“推送”,并设置新的列标题。 我该怎么做?
我希望我的数据框看起来像这样:
| Faculty | Male | Female | Total |
|---|---|---|---|
| Arts & Social Sciences 1 | 470 | 905 | 1375 |
| Arts & Social Sciences 2 | 438 | 1085 | 1523 |
...等等
---编辑---
感谢您的回复!
我应该提供更多信息并声明我不是在使用 pandas 时读取此数据帧,而是使用带有 tabula.read_pdf() 函数的tabula 库从 PDF 中读取它,并且数据帧像这样出现.有什么想法吗?
【问题讨论】:
-
当您将帧集标题读取为无时:
df = pd.read_csv(file.csv, header=None)然后分配新列:df.columns = ['Faculty', 'Male', . . .] -
你是如何读取这个数据框的?您可能需要提供列名。如果是
pd.read_csv(..., names=["Faculty", "Male", "Female", "Total"])应该可以工作 -
---编辑--- 感谢您的回复!我应该提供更多信息并声明我不是在使用 pandas 时读取此数据帧,而是使用带有 tabula.read_pdf() 函数的 tabula 库从 PDF 中读取它,并且数据帧像这样出现。有什么想法吗?
-
@BernardC 在tabula docs 中声明如果您阅读单个表格,则可以使用
pandas_options={"names": ["Faculty", "Male", "Female", "Total"])}