小编d84*_*nj4的帖子

从Python数据框的列中的每一行中删除前x个字符

我有一个包含大约1,500行和15列的Python数据帧.对于一个特定的列,我想删除每行的前3个字符.这里有一个简单的例子是数据帧:

import pandas as pd

d = {
    'Report Number':['8761234567', '8679876543','8994434555'],
    'Name'         :['George', 'Bill', 'Sally']
     }

d = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

我想删除Report Number数据框列中每个字段的前三个字符d.

python string replace dataframe pandas

19
推荐指数
2
解决办法
3万
查看次数

Python为Selenium设置Firefox首选项 - 下载位置

我使用Selenium Marrionette和GeckoDriver来提取网络数据.我使用以下命令设置我的Firefox配置文件首选项:

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 1)
fp.set_preference("browser.helperApps.alwaysAsk.force", False)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "H:\Downloads")
fp.set_preference("browser.download.downloadDir","H:\Downloads")
fp.set_preference("browser.download.defaultFolder","H:\Downloads")

binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

driver = webdriver.Firefox(capabilities=firefox_capabilities, firefox_binary=binary, firefox_profile = fp)
Run Code Online (Sandbox Code Playgroud)

根据我的理解,阅读无法设置firefox配置文件首选项并将FirefoxProfile传递给FirefoxDriver后,现在使用时似乎没有做任何事情firefox_profile.所以我需要实现新的更新firefox_capabilities,但我不确定如何做到这一点.有任何想法吗?

python selenium web-scraping firefox-marionette geckodriver

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

使用 Selenium Python 解析 HTML 并读取 HTML 表格

我正在将我的一些网络抓取代码从 R 转换为 Python(我无法让 geckodriver 与 R 一起工作,但它可以与 Python 一起工作)。无论如何,我试图了解如何使用 Python 解析和读取 HTML 表。快速背景,这是我的 R 代码:

doc <- htmlParse(remDr$getPageSource()[[1]],ignoreBlanks=TRUE, replaceEntities = FALSE, trim=TRUE, encoding="UTF-8")

WebElem <- readHTMLTable(doc, stringsAsFactors = FALSE)[[7]]
Run Code Online (Sandbox Code Playgroud)

我会将 HTML 页面解析为 doc 对象。然后我会从 开始doc[[1]],然后遍历更高的数字,直到看到我想要的数据。在这种情况下,我doc[[7]]看到了我想要的数据。然后我将读取该 HTML 表并将其分配给 WebElem 对象。最终我会把它变成一个数据框并使用它。

所以我在 Python 中所做的是这样的:

html = None
doc = None
html = driver.page_source
doc = BeautifulSoup(html)
Run Code Online (Sandbox Code Playgroud)

然后我开始玩,doc.get_text但我真的不知道如何获得我想看到的数据。我想看到的数据就像一个 10x10 的矩阵。当我使用 R 时,我只会使用doc[[7]]并且该矩阵几乎处于完美的结构中,我可以将其转换为数据帧。但是,我似乎无法用 Python 做到这一点。任何建议将不胜感激。

更新:

我已经能够使用 Python 获取我想要的数据——我关注了这个博客,用 Python 创建了一个数据框:Python Web-Scraping。这是我们在该博客中抓取的网站:最受欢迎的狗品种 …

python selenium beautifulsoup web-scraping rselenium

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

从整个Python Pandas Dataframe中删除Dollar Sign

我想从整个python pandas数据帧中删除美元符号.它与这篇文章类似:

删除整个字符

但是,我正在寻找删除无效的美元符号.我相信这是因为正则表达式认为美元符号是字符串的结尾,但我不知道该怎么做.这是我到目前为止创建的内容:

dftest = pd.DataFrame({'A':[1,2,3],
                       'B':[4,5,6],
                       'C':['f;','$d:','sda%;sd$'],
                       'D':['s%','d;','d;p$'],
                       'E':[5,3,6],
                       'F':[7,4,3]})
Run Code Online (Sandbox Code Playgroud)

这给出了输出:

In [155]: dftest
Out[155]:
   A  B         C     D  E  F
0  1  4        f;    s%  5  7
1  2  5       $d:    d;  3  4
2  3  6  sda%;sd$  d;p$  6  3
Run Code Online (Sandbox Code Playgroud)

然后我尝试删除美元符号如下:

colstocheck = dftest.columns

dftest[colstocheck] = dftest[colstocheck].replace({'$':''}, regex = True)
Run Code Online (Sandbox Code Playgroud)

这不会删除美元符号,但此代码确实删除百分号:

dftest[colstocheck] = dftest[colstocheck].replace({'%':''}, regex = True)
Run Code Online (Sandbox Code Playgroud)

所以我不确定如何更换美元符号.

python regex replace dataframe pandas

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

Keras 矩阵乘法以获得预测值

我希望利用 Keras 模型的输出通过矩阵乘法手动计算预测值。我想这样做是为了帮助了解 Keras 在幕后是如何工作的。我将使用简单的异或问题。这是我的代码:

import numpy as np
import keras
from keras.models import Sequential
from keras.layers.core import Dense
from keras.callbacks import LambdaCallback

class LossHistory(keras.callbacks.Callback):
    def on_train_begin(self, logs={}):
        self.losses = []

    def on_batch_end(self, batch, logs={}):
        self.losses.append(logs.get('loss'))


history = LossHistory()

# the four different states of the XOR gate
training_data = np.array([[0,0],[0,1],[1,0],[1,1]], "float32")

# the four expected results in the same order
target_data = np.array([[0],[1],[1],[0]], "float32")

model = Sequential()
model.add(Dense(4, input_dim=2, activation='relu'))
model.add(Dense(1, activation='sigmoid'))

print_weights = LambdaCallback(on_epoch_end=lambda batch, logs: print(model.layers[0].get_weights()))

model.compile(loss='mean_squared_error', …
Run Code Online (Sandbox Code Playgroud)

python matrix xor neural-network keras

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

如何在方程输出中保留分数

我一直在使用Python计算数学方程式。例如:

from sympy import Symbol, Derivative, Integral
x = Symbol('x')
d = Symbol('d')
Integral(8*x**(6/5)-7*x**(3/2),x).doit()
Run Code Online (Sandbox Code Playgroud)

结果为输出:

3.63636363636364*x**2.2 - 2.8*x**2.5
Run Code Online (Sandbox Code Playgroud)

有没有办法将这个答案显示为分数而不是小数?我想看到的输出为:

(40/11)*x**(11/5)-(14/5)*x**(5/2)+C
Run Code Online (Sandbox Code Playgroud)

python math sympy integral fractions

3
推荐指数
3
解决办法
4029
查看次数

Python linprog最小化-简单方法

我正在使用scipy.optimize.linprog库来使用单纯形方法计算最小化。我正在教科书中解决这个问题,希望有人能指出正确的方向,因为我没有得到预期的输出。问题是:

Minimize          w = 10*y1 + 15*y2 + 25*y3
Subject to:       y1 + y2 + y3 >= 1000
                  y1 - 2*y2    >= 0
                            y3 >= 340
with              y1 >= 0, y2 >= 0
Run Code Online (Sandbox Code Playgroud)

我为此编写的代码是:

import numpy as np
import pandas as pd
from scipy.optimize import linprog
A = np.array([
[1, 1, 1],
[1,-2, 0],
[0, 0, 1]])
b = np.array([1000,0,340])
c = np.array([-10,-15,-25])
res = linprog(c, A_ub=A, b_ub=b,
bounds=(0, None))
print('Optimal value:', res.fun, '\nX:', res.x)
Run Code Online (Sandbox Code Playgroud)

给出输出:

Optimal value: -18400.0
X: …
Run Code Online (Sandbox Code Playgroud)

python optimization numpy linear-algebra scipy

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

RSelenium:使用窗口句柄切换窗口

我一整天都在使用 RSelenium,但仍然在这里和那里遇到障碍。我当前的问题是使用WebElemReports$clickElement()单击链接并打开一个新窗口的代码。我试图在“about:config”中调整 Firefox 设置,这样它就不会打开一个新窗口。它在正常使用中不会打开一个窗口,但是使用 RSelenium 时,它仍然会打开一个新窗口。我也研究过这种方法,但无法遵循其工作原理:

如何单击Element()并在同一选项卡中打开链接

我的下一个思考过程是将 switchToWindow() 函数与 getWindowHandles() 一起使用。我写的代码如下:

remDr$closeWindow()
windHand <- remDr$getWindowHandles()
remDr$switchToWindow(windHand)
Run Code Online (Sandbox Code Playgroud)

我的想法是我将关闭当前窗口,以便只有一个句柄可以引用并将该句柄传递给 switchToWindow 函数。我找不到 R 的很多 switchToWindow 文档。使用上面的代码时收到以下错误:

错误:摘要:未知错误详细信息:处理命令时发生未知的服务器端错误。类:org.openqa.selenium.WebDriverException

对此的任何帮助将不胜感激 - 我试图尽可能多地研究这个问题,所以这不会像我上一篇文章那样被标记为重复的问题。非常感谢。

selenium r window-handles web-scraping rselenium

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