小编sop*_*les的帖子

发散颜色DataBar(条件格式)-openpyxl pandas

如何使用pandas和在数字数据列上添加条件格式规则openpyxl,该规则将为负值和正值使用不同的颜色?最终,与在 Excel 中对列应用数据条规则时得到的结果完全相同。

预期输出

在此输入图像描述


我相当成功地将条件格式应用于仅包含正值的列,使用:

from openpyxl.formatting.rule import DataBar

rule_pos = DataBarRule(start_type="percentile",start_value=10, end_type="percentile",
        end_value="90", color="FF638EC6", showValue="None", minLength=None,maxLength=None)

wb["sheet_name"].conditional_formatting.add("K44:K48", rule_pos)
Run Code Online (Sandbox Code Playgroud)

成功返回:

在此输入图像描述


这可以通过利用、 和参数Excelwriter来实现。conditional_format'min_color': 'red''max_color':'green'

我尝试了几种不同的方法,例如分别对绿色/红色数据条应用否定和肯定规则,或者调整 的openpyxl条件格式的参数。我得到的结果是相同的颜色,但负值的条形较小。事实证明这比我预期的要棘手。

python conditional-formatting pandas openpyxl pandas.excelwriter

5
推荐指数
0
解决办法
686
查看次数

在熊猫数据框中创建重复列

我想复制一个在开始位置有数字字符的列。即(1楼)

简单来说,我想将 1stfloor 列转换为 FirstFloor

df
    1stfloor
    456 
    784
    746
    44 
    9984
Run Code Online (Sandbox Code Playgroud)

尝试使用以下代码,

df['FirstFloor'] = df['1stfloor']
Run Code Online (Sandbox Code Playgroud)

遇到以下错误消息:

试图在来自 DataFrame 的切片副本上设置值。尝试使用 .loc[row_indexer,col_indexer] = value 代替

预期输出:

df

FirstFloor 
456 
784
746
44 
9984
Run Code Online (Sandbox Code Playgroud)

python-3.x

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

如何通过将 NA 视为 1 将 NA(文本 NA)值与数字相加

我有一张桌子

    A           B      C
 1  Param1  Param2   Param3
 2   1        NA      NA
 3   0         1      NA
 4   0         0      NA
 5   1         NA      1
Run Code Online (Sandbox Code Playgroud)

预期输出

      A           B      C     D
 1  Param1  Param2   Param3  Output
 2   1        NA      NA       3
 3   0         1      NA       2
 4   0         0      NA       1
 5   1         NA      1       3   #(sum of A,B,C columns is Output basically)
Run Code Online (Sandbox Code Playgroud)

所以基本上我希望 excel 将 NA 视为 1 。NA 这里是文本(不是错误,是纯文本 NA)。

我在下面试过但不起作用

=sum(A2, B2,C2)
Run Code Online (Sandbox Code Playgroud)

此代码忽略 NA。我认为 NA 是字符串,所以也会求和。你们能帮忙吗

excel excel-formula excel-2010

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

如何在Python数据表中填充空值?

Pandas 库有一个非常好的函数调用 .fillna() ,它可以用来填充空值

df = df.fillna(0)
Run Code Online (Sandbox Code Playgroud)

我正在使用数据表库来完成我的新作业,因为它在数据表中加载和处理大量数据的速度非常快。

fillnapython的Datatable库中是否存在这样的函数?

或者我们必须用什么替代方法来填充数据表中的缺失值?

python pandas py-datatable

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

如何更改 pandas groupby.agg 函数的输入参数?

我在使用 groupby_object.agg() 方法和想要更改输入参数的函数时遇到问题。是否有可用的函数名称资源 .agg() 接受,以及如何将参数传递给它们?

请参阅下面的示例:

import pandas as pd
import numpy as np

df = pd.DataFrame({'numbers': [1, 2, 3, 2, 1, 3], 
               'colors': ['red', 'white', 'blue', 'red', 'white', np.nan], 
               'weight': [10, 10, 20, 5, 10, 20]})

df['colors'].nunique() # Returns 3 as NaN is not counted
df['colors'].nunique(dropna=False) # Returns 4 as NaN is counted
Run Code Online (Sandbox Code Playgroud)

当我“颜色”时,groupby如何dropna=False通过函数传递参数?

df.groupby('numbers').agg({'colors': 'nunique', 'weight': 'sum'})
Run Code Online (Sandbox Code Playgroud)

python pandas pandas-groupby

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

如何使用 Python / Pyspark 合并 Databricks 笔记本中的数据帧

我正在使用 Databricks 笔记本提取 gz 压缩的 csv 文件并加载到数据框对象中。我在执行下面的第 2 部分时遇到了问题。

第 1 部分:将压缩文件加载到数据框中运行良好......

    %python
    df1 = spark.read.option("header",True).option("delimiter", "|").csv("dbfs:/model/.../file_1.csv.gz")
    df2 = spark.read.option("header",True).option("delimiter", "|").csv("dbfs:/model/.../file_2.csv.gz")
    
Run Code Online (Sandbox Code Playgroud)

第 2 部分:尝试合并数据框...

    %python
    import pandas as pd
    df =pd.concat([df1, df2], ignore_index=True)
    df.show(truncate=False)
    
Run Code Online (Sandbox Code Playgroud)

...返回以下错误:

类型错误:无法连接 '<class 'pyspark.sql.dataframe.DataFrame'>' 类型的对象;仅 Series 和 DataFrame 对象有效

对于尝试修改合并数据框的方式有什么建议吗?我最多将有 20 个文件要合并,其中所有列都相同。

python pandas pyspark databricks

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

从 Spark 数据框中的列中提取值并提取到两个新列

我有一个如下所示的 Spark 数据框:

    +----+------+-------------+
    |user| level|value_pair   |
    +----+------+-------------+
    | A  | 25   |(23.52,25.12)|
    | A  | 6    |(0,0)        |
    | A  | 2    |(11,12.12)   |
    | A  | 32   |(17,16.12)   |
    | B  | 22   |(19,57.12)   |
    | B  | 42   |(10,3.2)     |
    | B  | 43   |(32,21.0)    |
    | C  | 33   |(12,0)       |
    | D  | 32   |(265.21,19.2)|
    | D  | 62   |(57.12,50.12)|
    | D  | 32   |(75.12,57.12)|
    | E  | 63   |(0,0)        |
    +----+------+-------------+
Run Code Online (Sandbox Code Playgroud)

如何提取value_pair列中的值并将它们添加到名为 …

apache-spark apache-spark-sql pyspark

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