如何在 PySpark 或 Pandas 中将一列的中间行大写

Posted

技术标签:

【中文标题】如何在 PySpark 或 Pandas 中将一列的中间行大写【英文标题】:How to capitalize middle row of a column in PySpark or Pandas 【发布时间】:2020-11-12 07:49:03 【问题描述】:

我有一个 CSV 文件的三列值

    1st Column   2nd Column   3rd Column
    ram          karthi       bruce
    RAM          KATHI        BRUCE
    ram          karthi       bruce
    

我想将 Pyspark 或 Pandas 中的 ram、karthi 和 bruce 等第二行大写... 我做不到。请帮忙。 PySpark 中的解决方案会更有帮助..

【问题讨论】:

Spark 没有索引的概念,因此“第 2 行”不是定义明确的行。这在 spark 中没有什么意义。 我猜是可以的.. 不,它不能。见***.com/questions/36938976/… ***.com/questions/43406887/… 带有 zipWithIndex 的代码在 Pyspark 中对我不起作用..请帮助我.. 【参考方案1】:

在 Pandas 中,您可以使用 df.locSeries.str.upper 来实现:

In [1619]: df
Out[1619]: 
  1st_Column 2nd_Column 3rd_Column
0        ram     karthi      bruce
1        ram     karthi      bruce
2        ram     karthi      bruce

In [1620]: df.loc[1] = df.loc[1].str.upper()

In [1621]: df
Out[1621]: 
  1st_Column 2nd_Column 3rd_Column
0        ram     karthi      bruce
1        RAM     KARTHI      BRUCE
2        ram     karthi      bruce

【讨论】:

我不太清楚如何在PySpark 中执行此操作。

以上是关于如何在 PySpark 或 Pandas 中将一列的中间行大写的主要内容,如果未能解决你的问题,请参考以下文章

减去 Pandas 或 Pyspark 数据框中的连续列

如何在 PySpark 上将所有功能组合成一列?

在 PySpark 中将 Python Dict 转换为稀疏 RDD 或 DF

在 Pyspark 中将 Pandas 数据帧转换为 Spark 数据帧的 TypeError

如何在 PySpark 中将 unix 时间戳列转换为人类可理解的时间戳? [复制]

在 pandas/python 的同一数据框中将两列合并为一列