替换Pysp中数据帧中的值的子字符串

2024-05-19 09:15:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有一些属性的数据帧,它有下一个外观:

+-------+-------+
| Atr1  | Atr2  |
+-------+-------+
|  3,06 |  4,08 |
|  3,03 |  4,08 |
|  3,06 |  4,08 |
|  3,06 |  4,08 |
|  3,06 |  4,08 |
|  ...  |  ...  |
+-------+-------+

如您所见,数据帧的Atr1和Atr2的值是带有“,”字符的数字。这是因为我已经从CSV中加载了那些数据,其中DoubleType数字的小数由','表示。

当我将数据加载到数据帧中时,值将转换为字符串,因此我对这些属性应用了从字符串到DoubleType的转换,如下所示:

df = df.withColumn("Atr1", df["Atr1"].cast(DoubleType()))
df = df.withColumn("Atr2", df["Atr2"].cast(DoubleType()))

但当我这样做时,值被转换为空

+-------+-------+
| Atr1  | Atr2  |
+-------+-------+
|  null |  null |
|  null |  null |
|  null |  null |
|  null |  null |
|  null |  null |
|  ...  |  ...  |
+-------+-------+

我想原因是双精度小数必须用“.”而不是“,”分隔。但是我没有机会编辑CSV文件,所以我想用“.”替换数据帧中的“,”符号,然后将转换应用到DoubleType。

我该怎么做?


Tags: csv数据字符串df属性数字字符null

热门问题