作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何从 df 转到 df1,其中 df 和 df1 如下所示?
df = koalas.DataFrame({"teams": [["SF", "NYG"] for _ in range(7)],'teams1':[np.random.randint(0,10) for _ in range(7)]})
df
output:
teams teams1
0 [SF, NYG] 0
1 [SF, NYG] 5
2 [SF, NYG] 8
3 [SF, NYG] 1
4 [SF, NYG] 2
5 [SF, NYG] 8
6 [SF, NYG] 5
df1 = koalas.DataFrame({"col1": ["SF" for _ in range(7)],\
"col2": ["NYG" for _ in range(7)],\
'teams1':[np.random.randint(0,10) for _ in range(7)]})
df1
output:
col1 col2 teams1
0 SF NYG 8
1 SF NYG 2
2 SF NYG 9
3 SF NYG 4
4 SF NYG 8
5 SF NYG 3
6 SF NYG 1
我可以看到 Pandas 的解决方案 here .但是这个解决方案将收集司机端的所有数据,这不是我想要的。我想要一个考拉(pyspark 上的 Pandas )解决方案
最佳答案
我发现仅使用对 worker 操作的函数并且不将所有数据收集到驱动程序的一种方法是
df['teams'] \
.astype(str) \
.str.replace('\[|\]', '') \
.str.split(pat=',', n=1, expand=True)
# 0 1
# 0 SF NYG
# 1 SF NYG
# 2 SF NYG
# 3 SF NYG
# 4 SF NYG
# 5 SF NYG
# 6 SF NYG
我必须将该列转换为 string 类型,因为它是一个 numpy 数组,而 pyspark 无法对其进行操作。
要获取初始数据框及其其他列,您可以使用简单的concat
:
import databricks.koalas as ks
ks.concat([
df['teams'].astype(str).str.replace('\[|\]', '').str.split(pat=',', n=1, expand=True),
df.drop(columns='teams')
], axis=1)
# 0 1 teams1
# 0 SF NYG 2
# 1 SF NYG 2
# 2 SF NYG 1
# 3 SF NYG 1
# 4 SF NYG 7
# 5 SF NYG 8
# 6 SF NYG 6
关于python - 将列表的 koalas 列拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70361477/
我是一名优秀的程序员,十分优秀!