python - 用循环中的行填充现有数据框
问题描述
我尝试过如何从 for 循环中构建和填充熊猫数据框?但似乎无法将我的价值观写入我的专栏。
最终,我从网页获取数据并希望将其放入数据框中。
我的标题预定义为:
d1 = pd.DataFrame(columns=['col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', 'col8', 'col9',
'col10', 'col11', 'col12', 'col13', 'col14', 'col15', 'col16', 'col17'])
现在我有我在 for 循环中得到的值,我怎样才能将这些行写入每一列,然后重复回到第 1 到第 17 列,然后是下一行?
row = soup.find_all('td', attrs = {'class': 'Table__TD'})
for data in row:
print(data.get_text())
样本输出第 1 行
Mon 11/11
SA
100
31
3-5
60.0
1-3
33.3
1-2
50.0
10
4
0
1
1
2
8
样本输出第 2 行
Wed 11/13
@CHA
W119-117
32
1-5
20.0
1-5
20.0
0-0
0.0
3
1
0
1
3
3
3
预期产出
任何帮助,将不胜感激。
解决方案
你可以试试这个
import pandas as pd
columns = [
'col1',
'col2',
'col3',
'col4',
'col5',
'col6',
'col7',
'col8',
'col9',
'col10',
'col11',
'col12',
'col13',
'col14',
'col15',
'col16',
'col17',
]
# create dataframe
d1 = pd.DataFrame(columns=columns)
full = []
for data in soup.find_all('td', attrs={'class': 'Table__TD'}):
full.append(data.get_text())
# seperate full list into sub-lists with 17 elements
rows = [full[i: i+17] for i in range(0, len(full), 17)]
# append list of lists structure to dataframe
d1 = d1.append(pd.DataFrame(rows, columns=d1.columns))
推荐阅读
- javascript - 无法访问新过滤的数组的属性
- python - Pygame Pong 桨没有出现
- python - 我如何将 tkinter python 用于短语 = input("ENTER TEXT") Tkinter 文本框?
- python - Python Pandas 将日期和时间合并为一列并使用线图绘图
- php - PHP - 从 HTML 中提取文本,翻译并放回
- javascript - 动态获取函数参数名称和值
- python - 将产量生成器添加到 python 函数
- c++ - 比较字符 [C++]
- c# - 成员`System.Collections.Generic.List
.Count' 不能用作方法或委托 - php - 使用数据库调用进行输出缓冲?