基于条件的Pandas DataFrame切片列

巴利语

我正在根据条件对数据帧列中的行进行切片-我了解我可以使用.loc根据给定的条件为df列中的行分配特定的值,但是我需要该条件只是为了确定要切片多少。

例如,如果该行以'A'开头,我希望前6个字符([:6]),而如果它以'B'开头,我希望它具有前8个字符([:8])。

我这样做是为了在使用pd.merge()与另一个数据框执行内部联接之前,将数据转换为正确的格式。

.loc。我可以使用df.loc [df ['column'] [:1] =='A'],但是它没有给我满足条件的行的索引。我能想到的最好的解决方案是创建一个满足条件的所有索引的列表,然后逐个处理每一行。有一个更好的方法吗?

BEN_YO

您可以检查 np.select

m1 = df.col.str[0] == 'A'
m2 = df.col.str[0] == 'B'
df['NewCol'] = np.select([m1, m2], [df.col.str[:6], df.col.str[:8]], default = df.col)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章