为了账号安全,请及时绑定邮箱和手机立即绑定

将 pandas 输出格式化为 csv

将 pandas 输出格式化为 csv

开满天机 2022-06-28 16:55:05
我是 python 和 pandas 的新手,并创建了一个带有 html 代码的测试网页,用于帮助学习如何提取数据,然后格式化为 CSV 以在 excel 中使用。下面是我想出的代码,它把它变成了一个很好的格式,但我被困在如何将它格式化成一个 CSV 文件来导入。代码:# Importing pandas import pandas as pd # The webpage URL whose table we want to extract url = "/home/dvm01/e007"# Assign the table data to a Pandas dataframe table = pd.read_html(url,**index_col=0**)[0]#table2 = pd.read_html(url)[0],pd.read_html(url)[1],pd.read_html(url)[6]# Print the dataframe print(table)#print(table2)# Store the dataframe in Excel file #table.to_excel("data.xlsx") 输出:            Account                                          Account.1ID:                                         e007Description:  ABST: 198, SUR: J DOUTHITGeo ID:                            014.0198.0000我想弄清楚的是如何删除行的索引并使第一个之前的文本:成为列标题。在第 1 行中,我有两个:但第一个之后的所有内容:应该是列标题的数据。我想采用上述当前输出,并将 ID、描述和地理 ID 作为列标题,将“:”之后的文本作为每个标题的数据。我不需要 'Account' 和 'Account.1' 我相信这些被识别为列标题。下面是我希望输出在 Excel 中的样子,但我不知道如何正确格式化它以导出到可以导入的 CSV。也许我什至不需要导入或格式化为 CSV,'table.to_excel' 函数似乎不需要这一步。+------+---------------------------+---------------+| ID   | Description               | Geo ID        |+------+---------------------------+---------------+| e007 | ABST: 198, SUR: J Douthit | 014.0198.0000 |+------+---------------------------+---------------+通过使用上面定义 dfs 变量的 index_col=0 ,我能够删除索引号。不确定这是最好的方法,但它确实做了我试图为那部分完成的事情。由于我是 python 新手,我很难将我的问题格式化为 Google 或 StackOverflow 以获得我正在寻找的答案。如果有人能指出我正在寻找的正确方向,那会奏效,但例子也会很好。
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

因此,要格式化您的问题,您可以向我们展示您想要的示例。尝试这样的事情:


|id|name|data1|data2|date3|-url-|

|--|----|-----|-----|-----|-----|

|1 |xyz |datax|datay|dataz|x:url|

|2 |xyz |datax|datay|dataz|x:url|

|3 |xyz |datax|datay|dataz|x:url|

...

然后您可以询问有关如何创建适合您所需设计的正确 Dataframe 输出的问题:)


您也可以在线使用此生成器:https ://www.tablesgenerator.com/text_tables


+----+------+-------+-------+-------+------+

| Id | Name | Data1 | Data2 | Data3 | Url  |

+----+------+-------+-------+-------+------+

| 1  | xyz  | datax | datay | dataz | xurl | 

+----+------+-------+-------+-------+------+

| 2  | xyz  | datax | datay | dataz | xurl |

+----+------+-------+-------+-------+------+

| 3  | xyz  | datax | datay | dataz | xurl |

+----+------+-------+-------+-------+------+

好的,现在您已经完成了数据表设计。接下来我会请您尝试使用 Jupyter Notebook。这将让您逐行测试数据框。每个测试都应该是数据集的新迁移。


我如何看待工作流将满足您的需求: 1. 查看测试并查看您当前的 DF 列是什么:


print(df.columns)

2. 使用此命令编辑您的列:


df.rename(columns={'old column 1':'ID',

                          'old column 2':'Description',

                          'old column 3':'Geo ID'}, 

                 inplace=True)

使用此命令更改索引数据


df.rename(index={0:'zero',1:'one'}, inplace=True)


使用此命令更改行


df.loc['--insert_Column_here--', '--insert_row_here--'] = new_value


查看完整回答
反对 回复 2022-06-28
  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信