小编Mat*_*000的帖子

仅保留 Pandas DataFrame 中等于某个值的行(配对的多列)

部分答案可以在这里找到(How to select rows from a DataFrame based on column value?),但它仅适用于一列。我想知道如何将其应用于多列(本例中为两列)中的配对值。

我有一个数据框 df ,其中过滤列是 B 和 C (NaN 代表空单元格):

    A     B      C  D
0   1  Blue  Green  4
1   2  Blue  Green  6
2   3  Blue  Green  2
3   4  Blue    NaN  6
4   5  Blue    NaN  9
5   6   NaN  Green  8
6   7  Blue  Green  8
7   8   NaN    NaN  9
8   9   NaN  Green  1
9  10   NaN  Green  2
Run Code Online (Sandbox Code Playgroud)

我只想保留 B='Blue' 和 C='Green' 的 …

python pandas

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

如何使用 Plotly 设置图形的通用字体?

使用 Plotly 绘制图形时,有没有办法一次为整个图形设置字体(这样您就不必为图形中的每个元素单独设置字体)?

对于 MatPlotLib,这是通过以下方式完成的:

matplotlib.pyplot.rcparams["font.family"] = "Calibri"
Run Code Online (Sandbox Code Playgroud)

对于 Plotly,这是通过以下方式完成的:

?????
Run Code Online (Sandbox Code Playgroud)

python matplotlib plotly

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

Pandas 两列的总和 - 正确处理 nan 值

对两个 Pandas 列求和时,当两列之一是浮点数时,我想忽略 nan 值。但是,当 nan 出现在两列中时,我想将 nan 保留在输出中(而不是 0.0)。

初始数据帧:

Surf1     Surf2
0         0
NaN       8
8         15
NaN       NaN
16        14
15        7
Run Code Online (Sandbox Code Playgroud)

期望的输出:

Surf1     Surf2     Sum
0         0         0
NaN       8         8
8         15        23
NaN       NaN       NaN
16        14        30
15        7         22
Run Code Online (Sandbox Code Playgroud)

尝试过的代码: -> 下面的代码忽略了 nan 值,但是当取两个 nan 值的总和时,它在输出中给出 0.0,在这种情况下,我想将其保留为 NaN,以将这些空值与以下值分开求和后实际上为0。

import pandas as pd
import numpy as np

data = pd.DataFrame({"Surf1": [10,np.nan,8,np.nan,16,15], "Surf2": [22,8,15,np.nan,14,7]})
print(data)

data.loc[:,'Sum'] = data.loc[:,['Surf1','Surf2']].sum(axis=1)
print(data)
Run Code Online (Sandbox Code Playgroud)

python sum nan pandas

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

从 pandas 日期时间列中提取年份作为数值,对于空单元格使用 NaN 而不是 NaT

我想将日期时间列中的年份提取到新的“yyyy”列中,并且希望将缺失值 (NaT) 显示为“NaN”,因此新列的日期时间数据类型应该是我想已经改变了,但我被困住了..

\n\n

初始 df:

\n\n
        Date  ID\n0 2016-01-01  12\n1 2015-01-01  96\n2        NaT  20\n3 2018-01-01  73\n4 2017-01-01  84\n5        NaT  26\n6 2013-01-01  87\n7 2016-01-01  64\n8 2019-01-01  11\n9 2014-01-01  34\n
Run Code Online (Sandbox Code Playgroud)\n\n

所需的 df:

\n\n
        Date  ID  yyyy\n0 2016-01-01  12  2016\n1 2015-01-01  96  2015\n2        NaT  20   NaN\n3 2018-01-01  73  2018\n4 2017-01-01  84  2017\n5        NaT  26   NaN\n6 2013-01-01  87  2013\n7 2016-01-01  64  2016\n8 2019-01-01  11  2019\n9 2014-01-01  34  2014\n
Run Code Online (Sandbox Code Playgroud)\n\n

代码:

\n\n
import pandas as pd\xe2\x80\xa8\nimport numpy as np\xe2\x80\xa8\xe2\x80\xa8\n\n# example df\ndf = pd.DataFrame({"ID": …
Run Code Online (Sandbox Code Playgroud)

python datetime pandas na

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

以相同文本字符串开头的列的总和

我想取以相同文本字符串开头的列的值的总和(按行)。下面是我的原始 df 课程失败。

原始df:

ID  P_English_2  P_English_3  P_German_1   P_Math_1  P_Math_3  P_Physics_2  P_Physics_4
56            1            3           1          2         0            0            3
11            0            0           0          1         4            1            0
6             0            0           0          0         0            1            0
43            1            2           1          0         0            1            1
14            0            1           0          0         1            0            0
Run Code Online (Sandbox Code Playgroud)

所需的 df:

ID  P_English   P_German   P_Math   P_Physics
56          4          1        2           3
11          0          0        5           1 
6           0          0        0           1 
43          3          1        0           2
14 …
Run Code Online (Sandbox Code Playgroud)

python sum pandas pandas-groupby

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

标签 统计

python ×5

pandas ×4

sum ×2

datetime ×1

matplotlib ×1

na ×1

nan ×1

pandas-groupby ×1

plotly ×1