小编Hed*_*Hog的帖子

如何将 value_counts(normalize=True) 和 value_counts() 应用于 pandas 系列?

我喜欢展示效果良好的value_counts(normalize=True)内容series,但我也想value_counts()在附加专栏中展示未标准化的内容。

代码

import pandas as pd

cars = {'Brand': ['Honda Civic','Toyota Corolla','','Audi A4'],
        'Price': [32000,35000,37000,45000]
        }

df = pd.DataFrame(cars, columns = ['Brand', 'Price'])

df.Brand.value_counts(normalize=True)
Run Code Online (Sandbox Code Playgroud)

预期产出

                  perc   count
Toyota Corolla    0.25   1
Audi A4           0.25   1
Honda Civic       0.25   1
                  0.25   1
Name: Brand, dtype: float64
Run Code Online (Sandbox Code Playgroud)

问题

我怎样才能将这两个信息附加到该系列中?

python dataframe pandas

5
推荐指数
1
解决办法
1万
查看次数

如何获取 HTML 中每个 href 的所有元素作为行并将其添加到 pandas 数据框中?

我试图从以下网站获取每个 href 元素内的不同值: https: //www.bmv.com.mx/es/mercados/capitales

\n

href对于HTML 文件中的每个不同元素,应有 1 行与提供的标题上的每个字段相匹配。

\n

这是我试图抓取的 HTML 部分之一:

\n
\n  <tbody>\n    \n  <tr role="row" class="odd">\n<td class="sorting_1"><a href="/es/mercados/cotizacion/1959">AC\n  \n</a></td><td><span class="series">*</span>\n</td><td>03:20</td><td><span class="color-2">191.04\n\n</span></td><td>191.32</td>\n<td>194.51</td>\n<td>193.92</td>\n<td>191.01</td>\n<td>380,544</td>\n<td>73,122,008.42</td>\n<td>2,793</td>\n<td>-3.19</td><td>-1.64</td></tr><tr role="row" class="even">\n  <td class="sorting_1"><a href="/es/mercados/cotizacion/203">ACCELSA</a>\n  </td>\n  <td><span class="series">B</span>\n  </td><td>03:20</td><td>\n    <span class="">22.5</span></td><td>0</td>\n    <td>22.5</td><td>0</td><td>0\n\n    </td><td>3</td><td>67.20</td>\n    <td>1</td><td>0</td><td>0</td></tr>\n    <tr role="row" class="odd">\n      <td class="sorting_1">\n        <a href="/es/mercados/cotizacion/6096">ACTINVR</a></td>\n      <td><span class="series">B</span></td><td>03:20</td><td>\n        <span class="">15.13</span></td><td>0</td><td>15.13</td><td>0</td>\n        <td>0</td><td>13</td><td>196.69</td><td>4</td><td>0</td>\n        <td>0</td></tr><tr role="row" class="even"><td class="sorting_1">\n          <a href="/es/mercados/cotizacion/339083">AGUA</a></td>\n          <td><span class="series">*</span>\n          </td><td>03:20</td><td>\n            <span class="color-1">29</span>\n          </td><td>28.98</td><td>28.09</td>\n            <td>29</td><td>28</td><td>296,871</td>\n            <td>8,491,144.74</td><td>2,104</td><td>0.89</td>\n            <td>3.17</td></tr><tr role="row" class="odd"><td class="sorting_1">\n              <a href="/es/mercados/cotizacion/30">ALFA</a></td><td><span class="series">A</span></td>\n              <td>03:20</td>\n              <td><span class="color-2">13.48</span>\n              </td><td>13.46</td>\n              <td>13.53</td><td>13.62</td><td>13.32</td>\n              <td>2,706,398</td>\n …
Run Code Online (Sandbox Code Playgroud)

python dataframe web-scraping pandas python-requests

5
推荐指数
1
解决办法
428
查看次数

如何在 Javascript/React 中使用美化?

我已经安装Beautify并将其用于我的ReactJS代码。然而,它显然没有正确美化文件中的HTML格式。

例如,它变成这样:

在此输入图像描述

进入这个: 在此输入图像描述

在所有选项中,我应该使用哪个选项来解决这个问题?

html javascript reactjs js-beautify visual-studio-code

4
推荐指数
1
解决办法
6796
查看次数

如何以编程方式获取 javascript 页面后面的 CSV 链接?

我正在使用 python,当我单击本页DATA V CSV底部的按钮时,我试图获取 CSV 来源的链接。

我试过beautifulsoup

import requests
from bs4 import BeautifulSoup

url = 'https://www.ceps.cz/en/all-data#AktualniSystemovaOdchylkaCR'
response = requests.get(url)

soup = BeautifulSoup(response.content, 'html.parser')

# Find the link to the CSV file
csv_link = soup.find('a', string='DATA V CSV').get('href')
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

soup.find("button", {"id":"DATA V CSV"})

但没有找到后面的链接DATA V CSV

python beautifulsoup web-scraping

2
推荐指数
1
解决办法
86
查看次数

Python beautifulsoup - 获取由中断标记分隔的所有文本

我有以下表格:

<table width="100%" border="0" cellspacing="2" cellpadding="0">
                      <tbody><tr> 
                        <td class="labelplain">ANGARA, EDGARDO J.<br>ENRILE, JUAN PONCE<br>MAGSAYSAY JR., RAMON B.<br>ROXAS, MAR<br>GORDON, RICHARD "DICK" J.<br>FLAVIER, JUAN M.<br>MADRIGAL, M. A.<br>ARROYO, JOKER P.<br>RECTO, RALPH G.<br></td>
                      </tr>
                    </tbody></table>
Run Code Online (Sandbox Code Playgroud)

我可以使用下面的代码遍历 HTML 的这一部分:

soup.find('td', text = re.compile('Co-author\(s'), attrs={'class': 'labelplain'}).find_next('td')
coauthor = soup.find('td', text = re.compile('Co-author\(s'), attrs={'class': 'labelplain'}).find_next('td')
Run Code Online (Sandbox Code Playgroud)

我可以使用以下内容获取文本:

for br in coauthor.find_all('br'):
  firstcoauthor = (br.previousSibling)
  print (firstcoauthor)
Run Code Online (Sandbox Code Playgroud)

我想要得到的输出是所有文本的结果,然后用分号(;)分隔,如下所示:ANGARA, EDGARDO J.;ENRILE, JUAN PONCE;MAGSAYSAY JR., RAMON B.;ROXAS, MAR;GORDON, RICHARD “迪克” J.;弗拉维尔,胡安 M.;马德里加尔,马萨诸塞州;阿罗约,小丑 P.;莱克托,拉尔夫 G.

但上面的代码给了我如下结果:

ANGARA, EDGARDO J.
ENRILE, JUAN PONCE
MAGSAYSAY …
Run Code Online (Sandbox Code Playgroud)

python string replace beautifulsoup web-scraping

1
推荐指数
1
解决办法
1044
查看次数

从具有复杂逻辑的单列创建多列

我对数据框和/或系列的所有 apply、applymap、map 内容感到有点困惑。我想通过执行一些网络抓取操作的函数创建从数据框中的一列派生的多个列。

我的数据框看起来像这样

>>> df
          row1        url    row3
0        data1  http://...    123
1        data2  http://...    325
2        data3  http://...    346
Run Code Online (Sandbox Code Playgroud)

网页抓取功能是这样的

def get_stuff_from_url(url: str):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    data1 = soup.find('div', {'class': 'stuff1'})
    data2 = soup.find('span', {'class', 'stuff2'}).text
    data3 = soup.find('p', {'class', 'stuff3'}).text

    return data1, data2, data3
Run Code Online (Sandbox Code Playgroud)

结果应该是

>>> df_new
          row1        url    row3       row4       row5       row6
0        data1  http://...    123  newdata1a  newdata2a  newdata3a
1        data2  http://...    325  newdata1b  newdata2b  newdata3b
2        data3  http://...    346  newdata1c  newdata2c …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup dataframe web-scraping pandas

1
推荐指数
1
解决办法
471
查看次数

如何find_element(By.XPATH)并在selenium中发送密钥?

尝试更新我的代码以使用"driver.find_element(By.XPATH..."而不是"driver.find_elements_by_xpath(...",但当我发送密钥时,我不断收到以下错误:

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

driver = webdriver.Chrome(PATH)
link_login = "https://www.wyzant.com/tutor/jobs"

driver.get(link_login)

username_input = driver.find_element(By.XPATH, "//*[@id='Username']")[1]
username_input.send_keys("Test")
Run Code Online (Sandbox Code Playgroud)

python selenium xpath google-chrome webdriver

0
推荐指数
1
解决办法
3万
查看次数