我有一个看起来像这样的数据框,
img
0 6479965c_2019_04_15_20_26_25_90.jpg
1 6479965c_2019_04_15_20_26_25_92.jpg
2 6479965c_2019_04_15_20_26_25_93.jpg
3 6479965c_2019_04_15_20_26_25_96.jpg
4 6479965c_2019_04_15_20_26_26_10.jpg
....
如何将每个值替换为
"foo" + str(counter) + ".jpg"
我迭代了
counter = 1
for i in df['img']:
i = "foo_" + str(counter) + ".jpg"
counter += 1
但是它不起作用。
答案 0 :(得分:2)
使用以下代码,熊猫可以做到:
df['img'] = 'foo_' + (df.index + 1).astype(str) + '.jpg'
现在:
print(df)
输出:
img
0 foo_1.jpg.jpg
1 foo_2.jpg.jpg
2 foo_3.jpg.jpg
3 foo_4.jpg.jpg
4 foo_5.jpg.jpg
答案 1 :(得分:0)
您的问题是设置i
不会更改原始值,请看下面的示例,我需要获取要设置的当前元素的索引,因此我将使用枚举并且为了提高效率而不会使用常量变量,而不是添加到索引值
for index, item in enumerate(df['img']):
df['img'][index] = "foo_" + str(index+1) + ".jpg
编辑:刚意识到您有字典,所以您不必使用枚举
for index, item in df['img'].items():
df['img'][index] = "foo_" + str(index+1) + ".jpg