python - 如何从数据集中在 pandas 中创建标题和列?
问题描述
我知道如何硬编码标题名称,但我需要从我的数组中生成它们。这可能吗?
我的数据是动态抓取的,因此我无法对标题或列进行硬编码
results_headings 包含动物、矿物、蔬菜等字符串
results_columns 包含 Bear、Quartz、Brocolli 等字符串
我的代码
#Imports
from bs4 import BeautifulSoup
import requests
import pandas as pd
#Specify URL & Assign to page object
url = 'http://www.example.com'
page = requests.get(url)
#Grab our page as text
page.text
soup = BeautifulSoup(page.text, 'html.parser') #Use the HTML Parser
#Find our information
boxinfo = soup.find("div", {"id": "box1"})
headings = boxinfo.find_all("td", {"class": "label"})
columns = boxinfo.find_all("td")
#Get the headings
results_headings = []
for result in headings:
result_NoHTML = result.getText()
results.append(result_NoHTML)
#Get the columns
results_columns = []
for result2 in columns:
result2_NoHTML = result2.getText()
results_columns.append(result2_NoHTML)
df = pd.DataFrame(results_headings, results_columns)
df.to_csv('index.csv', index=False, encoding='utf-8')
我正在从中刮取的表结构
<div class="box1">
<table class="table1">
<tr><td class="label">Item1</td><td>Value1</td></tr>
<tr><td class="label">Item2</td><td>Value2</td></tr>
<tr><td class="label">Item3</td><td>Value3</td></tr>
<tr><td class="label">Item4</td><td>Value4</td></tr>
</table>
</div>
解决方案
所以你已经抓取了你的数据并最终得到了一个如下的数据框。请注意,列仍未命名,但列名出现在第一行,与您的数据没有任何分离:
df = pd.DataFrame([['Animal', 'Mineral', 'Vegetable'],
['Bear', 'Quartz', 'Brocolli'],
['Turtle', 'Amethyst', 'Asparagus']])
print(df)
0 1 2
0 Animal Mineral Vegetable
1 Bear Quartz Brocolli
2 Turtle Amethyst Asparagus
您可以从第二行开始构造一个新的数据框,并将第一行指定为列:
df = pd.DataFrame(df.values[1:], columns=df.values[0])
print(df)
Animal Mineral Vegetable
0 Bear Quartz Brocolli
1 Turtle Amethyst Asparagus
推荐阅读
- android - 如何在 Android 分页库中为列表、过滤器和搜索维护相同的数据源
- java - 无法解析符号“FilterQuery”
- c# - 伯恩斯坦算法 - 未处理的异常用户
- makefile - 在条件句中使用 makefile 变量的问题
- python - 如何在 python 3 中使用正则表达式忽略 unicode 字符?
- enums - Rust:将借来的结构传递给借来的枚举?
- c++ - 二进制字面量,其值在 C++ 中的编译时确定
- json - 如何将 TableView 中的选定行(JSON)发送到另一个视图控制器?
- javascript - 使用 Context API 与 Redux 有性能优势吗?
- javascript - 为什么我可以在 styled-components 上引用组件而其他人不能?