如何使用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
我想复制一个在开始位置有数字字符的列。即(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) 我有一张桌子
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 是字符串,所以也会求和。你们能帮忙吗
Pandas 库有一个非常好的函数调用 .fillna() ,它可以用来填充空值
df = df.fillna(0)
Run Code Online (Sandbox Code Playgroud)
我正在使用数据表库来完成我的新作业,因为它在数据表中加载和处理大量数据的速度非常快。
fillnapython的Datatable库中是否存在这样的函数?
或者我们必须用什么替代方法来填充数据表中的缺失值?
我在使用 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) 我正在使用 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 个文件要合并,其中所有列都相同。
我有一个如下所示的 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列中的值并将它们添加到名为 …
pandas ×4
python ×4
pyspark ×2
apache-spark ×1
databricks ×1
excel ×1
excel-2010 ×1
openpyxl ×1
py-datatable ×1
python-3.x ×1