我需要在选定行中使用一些字符串更新DataFrame列,我有索引。 到目前为止,我通过列表理解实现了我所需要的:
[data.particleIDs.values[idx[i]].append(particlenames[i]) for i in range(len(idx))]
其中data.particleIDs
是需要更新的数据帧列,particlenames
是一个包含字符串的列表,idx
是一个数组,对于每个字符串,它包含需要写入的数据帧行。几个字符串对应于同一行,我需要将它们全部写入DataFrame列
假设我有一个数据框和用于更新它的字符串列表:
data = pd.DataFrame({'particleIDs': [[] for i in range(20)]}
particlenames = ['c15001'+str(i) for i in range(10))]
我有10个字符串,我需要使用它们来更新数据帧中的行[7 8 15 8 11 0 15 1 12 8]
,也就是说,我需要将每个字符串添加到相应的行中
FOR循环非常慢,因为实际的particlenames
列表很长,我需要重复这个过程好几次
我能做些什么来加快速度吗
谢谢大家!
我通过为字符串和相应的 指数:
然后通过对行使用
groupby
方法将字符串附加到apply(list)
:最后,我
join
这个新的数据帧有一个(data
)需要用字符串更新:因此,我可以避免在创建
data
数据帧时添加particleIDs
(在我的实际情况中,它有其他列),因为连接的列包含我需要的信息相关问题 更多 >
编程相关推荐