我正试图将另一列(总计和百分比)添加到结果列(labels_value)中,该列将包含两列的组合,如下所示:
(Total) percentage%
.
基本上是包裹
bracket
字符串打开
Total
列并添加
%
这两列组合末尾的字符串。
df
import polars as pl
so_df = pl.DataFrame(
[{'Flag': 'Outof Range',
'Category': 'Thyroid',
'len': 7,
'Total': 21,
'percentage': 33.33,
'value': 33.33},
{'Flag': 'Outof Range',
'Category': 'Inflammatory Marker',
'len': 2,
'Total': 8,
'percentage': 25.0,
'value': 25.0},
{'Flag': 'Outof Range',
'Category': 'Lipid',
'len': 12,
'Total': 63,
'percentage': 19.05,
'value': 19.05},
{'Flag': 'Outof Range',
'Category': 'LFT',
'len': 14,
'Total': 87,
'percentage': 16.09,
'value': 16.09},
{'Flag': 'Outof Range',
'Category': 'DLC',
'len': 11,
'Total': 126,
'percentage': 8.73,
'value': 8.73},
{'Flag': 'Outof Range',
'Category': 'Vitamin',
'len': 1,
'Total': 14,
'percentage': 7.14,
'value': 7.14},
{'Flag': 'Outof Range',
'Category': 'CBC',
'len': 2,
'Total': 45,
'percentage': 4.44,
'value': 4.44},
{'Flag': 'Outof Range',
'Category': 'KFT',
'len': 2,
'Total': 56,
'percentage': 3.57,
'value': 3.57},
{'Flag': 'Outof Range',
'Category': 'Urine Examination',
'len': 1,
'Total': 28,
'percentage': 3.57,
'value': 3.57},
{'Flag': 'Within Range',
'Category': 'Thyroid',
'len': 14,
'Total': 21,
'percentage': 66.67,
'value': -66.67},
{'Flag': 'Within Range',
'Category': 'Inflammatory Marker',
'len': 6,
'Total': 8,
'percentage': 75.0,
'value': -75.0},
{'Flag': 'Within Range',
'Category': 'Lipid',
'len': 51,
'Total': 63,
'percentage': 80.95,
'value': -80.95},
{'Flag': 'Within Range',
'Category': 'LFT',
'len': 73,
'Total': 87,
'percentage': 83.91,
'value': -83.91},
{'Flag': 'Within Range',
'Category': 'DLC',
'len': 115,
'Total': 126,
'percentage': 91.27,
'value': -91.27},
{'Flag': 'Within Range',
'Category': 'Vitamin',
'len': 13,
'Total': 14,
'percentage': 92.86,
'value': -92.86},
{'Flag': 'Within Range',
'Category': 'CBC',
'len': 43,
'Total': 45,
'percentage': 95.56,
'value': -95.56},
{'Flag': 'Within Range',
'Category': 'KFT',
'len': 54,
'Total': 56,
'percentage': 96.43,
'value': -96.43},
{'Flag': 'Within Range',
'Category': 'Urine Examination',
'len': 27,
'Total': 28,
'percentage': 96.43,
'value': -96.43},
{'Flag': 'Within Range',
'Category': 'Anemia',
'len': 38,
'Total': 38,
'percentage': 100.0,
'value': -100.0},
{'Flag': 'Within Range',
'Category': 'Diabetes',
'len': 22,
'Total': 22,
'percentage': 100.0,
'value': -100.0},
{'Flag': 'Within Range',
'Category': 'Electrolyte',
'len': 46,
'Total': 46,
'percentage': 100.0,
'value': -100.0}]
)
shape: (21, 6)
Flag Category len Total percentage value
str str i64 i64 f64 f64
"Outof Range" "Thyroid" 7 21 33.33 33.33
"Outof Range" "Inflammatory Marker" 2 8 25.0 25.0
"Outof Range" "Lipid" 12 63 19.05 19.05
"Outof Range" "LFT" 14 87 16.09 16.09
"Outof Range" "DLC" 11 126 8.73 8.73
⦠⦠⦠⦠⦠â¦
"Within Range" "KFT" 54 56 96.43 -96.43
"Within Range" "Urine Examination" 27 28 96.43 -96.43
"Within Range" "Anemia" 38 38 100.0 -100.0
"Within Range" "Diabetes" 22 22 100.0 -100.0
"Within Range" "Electrolyte" 46 46 100.0 -100.0
我尝试了以下三种方法,但都没有奏效:
(so_df
# .with_columns(labels_value = "("+str(pl.col("Total"))+") "+str(pl.col("percentage"))+"%")
# .with_columns(labels_value = "".join(["(",str(pl.col("Total")),") ",str(pl.col("percentage")),"%"]))
# .with_columns(labels_value =pl.concat_str([pl.col("Total"),pl.col("percentage")])))
预期结果如下:
(21) 33.33% # 1st row of labels_value column
(8) 25%
(63) 19.05%
.
.