我正在使用Pandas 从几个表格中收集数据. 我有一个值列表,我想从这些值列表中以列的形式在循环中添加到表中的每一行.我想不出该怎么做.

现在,将表合并为一个表的代码如下所示

result_table = []
for url in urls_list:
    
    response = s2.get(url=url, headers=headers)
    soup2 = BS(response.text, 'lxml')

    
    try:
        table = pd.read_html(url) 
    
    except:
        print('table not exist')
        continue
    
    result_table.append(table)


final_table = pd.DataFrame() 

for t in result_table:

    final_table = final_table.append(t)

final_table.to_excel("razmeri.xlsx")

final_table看起来像这样:

|  1   | RowTable1   |
|  2   | RowTable1   |
|  3   | RowTable2   |
|  4   | RowTable2   |
|  5   | .........   |

我想增加一份名单

list = ['259, 178, 305, .....']

并从列表中的RESULT_TABLE=VALUE到表的每一行

FINAL_TABLE应为:

| 259   | RowTable1    |
| 259   | RowTable1    |
| 178   | RowTable2    |
| 178   | RowTable2    |
| 305   | RowTable3    |
| 305   | RowTable3    |

我想不出该怎么做这件事 如果有人能帮忙,我将不胜感激

版本 Pandas :1.3.1 巨 Python :3.8.0

推荐答案

假设您有以下数据帧:

   Col1       Col2
0     1  RowTable1
1     2  RowTable1
2     3  RowTable2
3     4  RowTable2
4     5  RowTable3

然后,您可以执行以下操作:

lst = [259, 178, 305]
it = iter(lst)

df["Col1"] = df.groupby("Col2")["Col1"].transform(lambda x: [next(it, None)] * len(x))
print(df)

打印:

   Col1       Col2
0   259  RowTable1
1   259  RowTable1
2   178  RowTable2
3   178  RowTable2
4   305  RowTable3

Python-3.x相关问答推荐

具有多个值的极轴旋转和熔化/取消旋转(反转旋转)操作(Pandas 堆叠/取消堆叠交替/UDF覆盖)

Pandas -我们如何在一行中应用多个要求

无法使用Python发送带有参数和标头的POST请求

python3,将整数转换为字节:对于小整数使用 to_bytes() 有哪些替代方法?

如何在 Python 中 cv2 的窗口标题上动态更新 FPS

如果原始字符串包含正斜杠,如何返回具有不同可能性的新字符串

Pygame 错误地渲染等距图像

Python rolling_corr 取消后,应该用什么方法来处理

Python:获取未绑定的类方法

python3源的类图查看器应用程序

两个字符串之间的正则表达式匹配?

python中是否有大于但小于函数?

如何从另一个目录导入 python 包?

在数据类中创建类变量的正确方法

__new__ 方法给出错误 object.__new__() 只接受一个参数(要实例化的类型)

Pylint 给我最后的新行丢失

Python的max函数有多高效

如何使用已打开并使用登录凭据登录的浏览器

带有数千个逗号刻度标签的 MatPlotLib 美元符号

十六进制字符串到 Python 3.2 中的带符号整数?