Python 更改数据帧中的列
我希望更改数据帧列中字符串的一部分。一、 但是,无法使其在数据帧中更新。这是我的密码Python 更改数据帧中的列,python,pandas,Python,Pandas,我希望更改数据帧列中字符串的一部分。一、 但是,无法使其在数据帧中更新。这是我的密码 import pandas as pd #File path csv = '/home/test.csv' #Read csv to pandas df = pd.read_csv(nuclei_annotations_csv, header=None, names=['A', 'B', 'C', 'D', 'E', 'F']) #Select Data to update paths = df['A']
import pandas as pd
#File path
csv = '/home/test.csv'
#Read csv to pandas
df = pd.read_csv(nuclei_annotations_csv, header=None, names=['A', 'B', 'C', 'D', 'E', 'F'])
#Select Data to update
paths = df['A']
#Loop over data
for x in paths:
#Select data to updte
old = x[:36]
#Update value
new = '/Datasets/RetinaNetData'
#Replace
new_path = x.replace(old, new)
#Save values to DataFrame
paths.update(new_path)
#Print updated DataFrame
print(df)
我想要的输入和输出是:
输入:
/Annotations/test_folder/10_m03293_ORG.png
/Annotations/test_folder/10_m03293_ORG.png
/Annotations/test_folder/10_m03293_ORG.png
/Annotations/test_folder/10_m03293_ORG.png
输出:
/Datasets/RetinaNetData/10_m03293_ORG.png
/Datasets/RetinaNetData/10_m03293_ORG.png
/Datasets/RetinaNetData/10_m03293_ORG.png
/Datasets/RetinaNetData/10_m03293_ORG.png
假设所有行都是字符串,并且所有行至少包含36个字符,则可以使用获取第36个字符之后的单元格部分。然后,您可以使用
+
操作符将新的开头与每个单元格的剩余内容组合起来:
df.A = '/Datasets/RetinaNetData' + df.A.str[36:]
作为一般提示,像这样一次在整个数据帧上操作的方法将比单独在每行上循环更有效。假设所有行都是字符串,并且所有行都至少有36个字符,您可以使用它来获取第36个字符之后的单元格部分。然后,您可以使用
+
操作符将新的开头与每个单元格的剩余内容组合起来:
df.A = '/Datasets/RetinaNetData' + df.A.str[36:]
作为一般提示,像这样一次在整个数据帧上运行的方法将比单独在每一行上循环更有效。因此,您试图用
'A'
列的每一行中的前36个字符替换为'/Datasets/RetinaNetData'
?您能给我们展示一个数据是什么以及需要什么的示例吗acheive@rahlf23是的,基本上更改了csvSee@ASGM答案中的目录。因此,您试图将'A'
列每行的前36个字符替换为'/Datasets/RetinaNetData'
?您能否向我们展示一个示例,说明数据是什么,以及您想要什么acheive@rahlf23对基本上更改csvSee@ASGM答案中的目录。