小编Man*_*que的帖子

通过分隔符pandas python拆分列

我有一个小样本数据:

import pandas as pd

df = {'ID': [3009, 129,119,120,121,122,130,3014,266,849,174,844 ],
  'V': ['IGHV7-B*01','IGHV7-B*01','IGHV6-A*01','GHV6-A*01','IGHV6-A*01','IGHV6-A*01','IGHV4-L*03','IGHV4-L*03','IGHV5-A*01','IGHV5-A*04','IGHV6-A*02','IGHV6-A*02'],
  'Prob': [1,1,0.8,0.8056,0.9,0.805 ,1,1,0.997,0.401,1,1]}


df = pd.DataFrame(df)
Run Code Online (Sandbox Code Playgroud)

好像

df    

Out[25]: 
      ID    Prob           V
0    3009  1.0000  IGHV7-B*01
1     129  1.0000  IGHV7-B*01
2     119  0.8000  IGHV6-A*01
3     120  0.8056  IGHV6-A*01
4     121  0.9000  IGHV6-A*01
5     122  0.8050  IGHV6-A*01
6     130  1.0000  IGHV4-L*03
7    3014  1.0000  IGHV4-L*03
8     266  0.9970  IGHV5-A*01
9     849  0.4010  IGHV5-A*04
10    174  1.0000  IGHV6-A*02
11    844  1.0000  IGHV6-A*02
Run Code Online (Sandbox Code Playgroud)

我想将'V'列拆分为' - '分隔符并将其移动到另一个名为'allele'的列

    Out[25]: 
      ID    Prob      V …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何对pyspark中的spark数据框中的多列求和?

我有一个要汇总的列名列表

columns = ['col1','col2','col3']
Run Code Online (Sandbox Code Playgroud)

如何添加这三个并将其放入新列中?(以自动方式,以便我可以更改列列表并获得新结果)

带有我想要的结果的数据框:

col1   col2   col3   result
 1      2      3       6
Run Code Online (Sandbox Code Playgroud)

谢谢 !

python apache-spark pyspark

8
推荐指数
3
解决办法
2万
查看次数

Python3:将大整型转换为浮点数 - 错误的结果 - 如何正确?

我需要对 python3 (版本 3.6.7)中的一个非常大的 int 进行一些除法。由于除法后总是得到错误的结果(用小数检查),我发现这是 int 和 float 之间的转换。

为什么要int(float(number))返回与最初给出的不同的数字?

数量例如

11112156454654632123512435326901347901387409791345202341234653563776467245234565435637654768245987098709846554513216562452354654823453456581
Run Code Online (Sandbox Code Playgroud)

int(float(number)我得到之后

11112156454654632053401792328854929027579441319469717890945725999319869381390969666824878190611577646608244392592697365262211066608985571328
Run Code Online (Sandbox Code Playgroud)

谢谢,

此刻确实陷入了困境。

约翰内斯

int type-conversion python-3.x

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

高效的pyspark加入

我已经阅读了很多有关如何在pyspark中进行有效联接的内容。我发现实现高效联接的方法基本上是:

  • 如果可以,请使用广播加入。(我通常不能,因为数据帧太大)
  • 考虑使用非常大的群集。(我宁愿不是因为$$$)。
  • 使用相同的分区程序

最后一个是我想尝试的,但是我找不到在pyspark中实现它的方法。我试过了:

df.repartition(numberOfPartitions,['parition_col1','partition_col2'])
Run Code Online (Sandbox Code Playgroud)

但这无济于事,直到我停止它仍需要花费很长时间,因为在最后的几项工作中卡住了火花。

因此,如何在pyspark中使用相同的分区程序并加快连接速度,甚至摆脱永远需要的时间?我需要使用哪个代码?

PD:即使在stackoverflow上,我也查看了其他文章,但是我仍然看不到代码。

apache-spark pyspark

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

选择在pyspark中包含字符串的列

我有一个带有很多列的pyspark数据帧,我想选择包含某个字符串的字符串和其他字符串。例如:

df.columns = ['hello_world','hello_country','hello_everyone','byebye','ciao','index']
Run Code Online (Sandbox Code Playgroud)

我想选择包含'hello'的列以及名为'index'的列,因此结果将是:

['hello_world','hello_country','hello_everyone','index']
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西 df.select('hello*','index')

提前致谢 :)

编辑:

我找到了快速解决问题的方法,所以我以问答形式回答自己。如果有人看到我的解决方案并可以提供更好的解决方案,我将不胜感激

python pyspark pyspark-sql

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