![](/img/trans.png)
[英]How to replace a string that is a part of a dataframe with a list in pandas?
[英]How to do replace particular part of string on every row of dataframe?
我有一个带文件名列的df。 文件名本身仅包含我需要的一条信息,即ID。
df:
filename
/path/to/file/in/folder 76317 1a2334bc-5d6e-7f89-123e-0f12fgf123.txt
我只需要文件夹之后和哈希之前的部分。 因此,在本例中为76317。文件夹中的所有文件都具有文件夹路径,空间,我需要的ID和具有其余文件名的空间。
如何从文件名列中删除除此特定列的所有行上需要的ID以外的所有内容?
将str.extract
与正则表达式一起使用,该正则表达式查找由2个空格包围的所有内容:
>>> df
filename
0 /path/to/file/in/folder 76317 1a2334bc-5d6e-7f...
1 /path/to/file/in/folder 76318 1a2334bc-5d6e-7f...
df['filename'] = df.filename.str.extract('\s(.*)\s', expand=False)
>>> df
filename
0 76317
1 76318
我不确定您的确切实现方式,但是您尝试使用str.split()
吗?
id = filename.split()[1]
用您说过的每个文件中的空格分隔文件名的每个部分,然后获取中间项,即split()
返回的节列表中的索引1。
尝试这个:
for fileName in column:
ID = fileName.split(' ')[1]
但是,您应该在将字符串放入数据框之前尝试这种方法,因此您不必对其进行两次迭代。
由于您知道确切的格式,因此可以将split
与panda的apply一起使用 :
df['filename'] = df['filename'].apply(lambda x: x.split(' ')[1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.