如何用连续列表值替换DataFrame中特定行的Index值
解决方案
直接定位所有Index列值为'0'的行,按顺序替换为sessions_list中的元素即可,代码如下:
import pandas as pd d = { 'Index': ['0', '1', '0','1', '0', '1', '2','3'], 'user_id': ['id11', 'id54', 'id544','id659', 'id18', 'id549', 'id59','id59'], 'launchingRole': ['writer', 'writer', 'writer','writer', 'reader', 'reader', 'reader','reader'] } df2 = pd.DataFrame(d) sessions_list = ['id599', '08749', '489w'] # 获取所有Index为'0'的行索引 zero_positions = df2[df2['Index'] == '0'].index # 按顺序替换对应位置的Index值 df2.loc[zero_positions, 'Index'] = sessions_list # 输出结果 print(df2)
结果说明
执行后df2的Index列会变为:['id599', '1', '08749', '1', '489w', '1', '2', '3'],完全符合需求。这种方法效率很高,即使处理大型DataFrame也能快速完成,因为是基于Pandas的向量化操作,避免了逐行遍历的开销。
内容的提问来源于stack exchange,提问作者Economistunknown
相关产品推荐
相关产品推荐

