如何在过滤后的数据框中使用枚举
how to use enumerate in a filtered dataframe
社区!感谢迄今为止我得到的所有支持!
我以下面的数据框为例:
d = {'country': ['argentina', 'argentina', 'colombia', 'australia', 'england', 'england' , 'china', 'india', 'emirates', 'togo'], 'numbers': [39, 30, 20, 71, 44, 56, 21, 45, 29 ,33]}
df = pd.DataFrame(数据=d)
实际上,我正在使用的那个有 30,000 行,我过滤了几次(大约 10 次)
在所有过滤器之后我得到了类似的东西:
索引因筛选器不同而不同。
现在我到了一个地步,如果 'egd' 以 'e' 开头,我必须替换国家名称,所以我想出了:
for i, row in enumerate(df['country']):
if row.startswith('e'):
df['country'][i] = 'egd'
警告是:
实际上,下面的代码并没有起作用
我明白这是因为过滤后的数据帧与原始数据帧的索引相比,枚举 'i' 的值不同。
处理这种情况的最佳方法是什么?删除过滤的行?
有什么办法可以删除过滤的行吗? (在上例中:第 1、2、3、6、8 行)
提前致谢!!
更多pandas方法是使用地图
df['country'] = df['country'].map(lambda s: 'egd' if s.startswith('e') else s)
社区!感谢迄今为止我得到的所有支持!
我以下面的数据框为例:
d = {'country': ['argentina', 'argentina', 'colombia', 'australia', 'england', 'england' , 'china', 'india', 'emirates', 'togo'], 'numbers': [39, 30, 20, 71, 44, 56, 21, 45, 29 ,33]}
df = pd.DataFrame(数据=d)
实际上,我正在使用的那个有 30,000 行,我过滤了几次(大约 10 次)
在所有过滤器之后我得到了类似的东西:
索引因筛选器不同而不同。
现在我到了一个地步,如果 'egd' 以 'e' 开头,我必须替换国家名称,所以我想出了:
for i, row in enumerate(df['country']):
if row.startswith('e'):
df['country'][i] = 'egd'
警告是:
实际上,下面的代码并没有起作用
我明白这是因为过滤后的数据帧与原始数据帧的索引相比,枚举 'i' 的值不同。
处理这种情况的最佳方法是什么?删除过滤的行? 有什么办法可以删除过滤的行吗? (在上例中:第 1、2、3、6、8 行)
提前致谢!!
更多pandas方法是使用地图
df['country'] = df['country'].map(lambda s: 'egd' if s.startswith('e') else s)