gpt4 book ai didi

pandas - 如何根据行的值将每一行乘以一个数字?

转载 作者:行者123 更新时间:2023-12-05 05:03:27 24 4
gpt4 key购买 nike

我有这个 DF,我希望根据 col3 的字数来乘以行数。这可以用 Python 完成吗?

col1    col2    col3
A1 B1 a - ab - abc
A13 B13 a - ab
A27 B27 abcd

期望的输出

col1    col2    col3
A1 B1 a - ab - abc
A1 B1 a - ab - abc
A1 B1 a - ab - abc
A13 B13 a - ab
A13 B13 a - ab
A27 B27 abcd

最佳答案

使用Index.repeatSeries.str.count用于计算单词,然后按 DataFrame.loc 重复行:

df = df.loc[df.index.repeat(df['col3'].str.count('\w+'))].reset_index(drop=True)
print (df)
col1 col2 col3
0 A1 B1 a - ab - abc
1 A1 B1 a - ab - abc
2 A1 B1 a - ab - abc
3 A13 B13 a - ab
4 A13 B13 a - ab
5 A27 B27 abcd

如果总是有被 - 分隔的单词,可以计算它并添加 1:

df = df.loc[df.index.repeat(df['col3'].str.count('-') + 1)].reset_index(drop=True)

或@sammywemmy 的解决方案,感谢您对列表的拆分和长度:

df.loc[df.index.repeat(df.col3.str.split('-').str.len())].reset_index(drop=True)

关于pandas - 如何根据行的值将每一行乘以一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61672169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com