小编Rat*_*rit的帖子

pandas数据框和计数中所选列的唯一值组合

我在pandas数据框中的数据如下:

df1 = pd.DataFrame({'A':['yes','yes','yes','yes','no','no','yes','yes','yes','no'],
                   'B':['yes','no','no','no','yes','yes','no','yes','yes','no']})
Run Code Online (Sandbox Code Playgroud)

所以,我的数据看起来像这样

----------------------------
index         A        B
0           yes      yes
1           yes       no
2           yes       no
3           yes       no
4            no      yes
5            no      yes
6           yes       no
7           yes      yes
8           yes      yes
9            no       no
-----------------------------
Run Code Online (Sandbox Code Playgroud)

我想将其转换为另一个数据框架.预期的输出可以在以下python脚本中显示:

output = pd.DataFrame({'A':['no','no','yes','yes'],'B':['no','yes','no','yes'],'count':[1,2,4,3]})
Run Code Online (Sandbox Code Playgroud)

所以,我的预期输出看起来像这样

--------------------------------------------
index      A       B       count
--------------------------------------------
0         no       no        1
1         no      yes        2
2        yes       no        4
3        yes      yes        3
--------------------------------------------
Run Code Online (Sandbox Code Playgroud)

实际上,我可以通过使用以下命令找到所有组合并计算它们: mytable = df1.groupby(['A','B']).size()

然而,事实证明这种组合在一列中.我想将组合中的每个值分成不同的列,并为计数结果再添加一列.有可能吗?我可以提出你的建议吗?先感谢您.

python pandas

54
推荐指数
2
解决办法
6万
查看次数

火车上分开并按组进行测试

我有一个样本数据如下:

import pandas as pd

df = pd.DataFrame({"x": [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120],
                   "id": [1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5],
                   "label": ["a", "a", "a", "b", "a", "b", "b", "b", "a", "b", "a", "b"]})
Run Code Online (Sandbox Code Playgroud)

所以我的数据看起来像这样

  x   id   label
 10   1    a
 20   1    a
 30   1    a
 40   1    b
 50   2    a
 60   2    b
 70   3    a
 80   3    a
 90   4    b
100   4    a …
Run Code Online (Sandbox Code Playgroud)

python machine-learning pandas scikit-learn

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

熊猫数据框的同一行但不同列的单元格的乘法总和

我有一个数据框

df = pd.DataFrame({'A':[1,2,3],'B':[2,3,4]})
Run Code Online (Sandbox Code Playgroud)

我的数据看起来像这样

Index   A   B
0       1   2
1       2   3
2       3   4
Run Code Online (Sandbox Code Playgroud)

我想计算每行中 A 和 B 之间的乘法总和。预期的结果应该是 (1x2)+(2x3)+(3x4) = 2 + 6 + 12 = 20。我可以知道 pythonic 的方法来做到这一点而不是循环吗?

python pandas

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

根据条件合并日期范围内日期的两个数据框

我的日历数据框如下。

calendar = pd.DataFrame({"events": ["e1", "e2", "e3"],
                         "date_start": ["2021-02-01", "2021-02-06", "2021-02-03"],
                         "date_end":["2021-02-04", "2021-02-07", "2021-02-03"],
                         "country": ["us", "us", "uk"]})
calendar["date_start"] = pd.to_datetime(calendar["date_start"])
calendar["date_end"] = pd.to_datetime(calendar["date_end"])
Run Code Online (Sandbox Code Playgroud)

我有一个每日数据框,如下所示。

daily = pd.DataFrame({"date": pd.date_range(start="2021-02-01", end="2021-02-08"),
                      "value":[10, 20, 30, 40, 50, 60, 70, 80]})
Run Code Online (Sandbox Code Playgroud)

我只想获取来自美国的事件并加入每日数据框,但加入条件是(日期 >= date_start)和(日期 <= date_end)。所以预期的输出看起来像这样

date              value   events
2021-02-01        10      e1
2021-02-02        20      e1
2021-02-03        30      e1
2021-02-04        40      e1
2021-02-05        50
2021-02-06        60      e2
2021-02-07        70      e2
2021-02-08        80
Run Code Online (Sandbox Code Playgroud)

我可以做循环,但效果不佳。我可以请您提出如何以更好的方式去做的建议吗?

python pandas

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

pandas 中给定日期的季度天数

我创建了一个日期数据框,如下所示:

import pandas as pd

timespan = 366
df = pd.DataFrame({'Date':pd.date_range(pd.datetime.today(), periods=timespan).tolist()})
Run Code Online (Sandbox Code Playgroud)

我正在努力确定季度中的天数。例如

date          expected_value
2017-01-01       1           # First day in Q1
2017-01-02       2           # Second day in Q1
2017-02-01      32           # 32nd day in Q1
2017-04-01       1           # First day in Q2
Run Code Online (Sandbox Code Playgroud)

我可以听听你的建议吗?先感谢您。

python pandas

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

从图像opencv python中删除背景颜色

我有许多具有无法控制的背景颜色的标本图像。其中一些有黑色背景。其中一些有白色背景。其中一些有绿色背景等。

我想删除给定图像的这些背景颜色,其中图像中的对象只是一个样本。我尝试了这段代码,但它没有按我的预期工作。

def get_holes(image, thresh):
        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

        im_bw = cv2.threshold(gray, thresh, 255, cv2.THRESH_BINARY)[1]
        im_bw_inv = cv2.bitwise_not(im_bw)

        _, contour, _ = cv2.findContours(im_bw_inv, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_SIMPLE)
        for cnt in contour:
            cv2.drawContours(im_bw_inv, [cnt], 0, 255, -1)

        nt = cv2.bitwise_not(im_bw)
        im_bw_inv = cv2.bitwise_or(im_bw_inv, nt)
        return im_bw_inv


    def remove_background(image, thresh, scale_factor=.25, kernel_range=range(1, 15), border=None):
        border = border or kernel_range[-1]

        holes = get_holes(image, thresh)
        small = cv2.resize(holes, None, fx=scale_factor, fy=scale_factor)
        bordered = cv2.copyMakeBorder(small, border, border, border, border, cv2.BORDER_CONSTANT)

        for i in kernel_range:
            kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, …
Run Code Online (Sandbox Code Playgroud)

python opencv image image-processing computer-vision

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

计算另一个数据框中的一行pandas数据框

我想在一个数据框中添加一列,其中包含另一个数据框中的匹配数。例如,

df1 = pd.DataFrame({'A':['yes','yes','yes','yes','yes','yes','no','no','no','no','no','no'],
                    'B':['L','L','M','M','H','H','L','L','M','M','H','H'],
                    'C':[True,False,True,False,True,False,True,False,True,False,True,False]})
Run Code Online (Sandbox Code Playgroud)

对于 df1 中的每一行,我想知道它在 df2 中的计数

df2 = pd.DataFrame({'A':['yes','yes','no','yes','no','yes','yes','no','no','no'],
                   'B':['L','M','M','L','M','M','H','L','H','M'],
                   'C':[True,True,True,True,True,False,False,False,False,False]})
Run Code Online (Sandbox Code Playgroud)

通过在 df1 中添加“count”列,预期输出如下:

index     A     B     C     count
0        yes    L   True        2
1        yes    L   False       0
2        yes    M   True        1
3        yes    M   False       1
4        yes    H   True        0
5        yes    H   False       1
6         no    L   True        0
7         no    L   False       1
8         no    M   True        2
9         no    M   False       1
10        no    H   True        0
11 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

无法在 Ubuntu 20.04 上安装 ROCm

我想在 Ubuntu 上为深度学习设置 AMD Radeon。我工作的主要库是 keras 和 pytorch。我在这里严格遵循 ROCm 安装指南但在使用命令的第 3 步失败了sudo apt install rocm-dkms。错误消息显示如下。

Setting up dkms (2.8.1-5ubuntu1) ...
Setting up hip-rocclr (4.0.20496.5685.40000-23) ...
Setting up rock-dkms (1:4.0-23) ...
Loading new amdgpu-4.0-23 DKMS files...
Building for 5.8.0-41-generic
Building for architecture x86_64
Building initial module for 5.8.0-41-generic
Error! Bad return status for module build on kernel: 5.8.0-41-generic (x86_64)
Consult /var/lib/dkms/amdgpu/4.0-23/build/make.log for more information.
dpkg: error processing package rock-dkms (--configure):
 installed rock-dkms package post-installation script …
Run Code Online (Sandbox Code Playgroud)

gpu deep-learning amd-rocm ubuntu-20.04

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