gpt4 book ai didi

python - 删除 pandas DataFrame 列中字符串条目的结尾

转载 作者:太空狗 更新时间:2023-10-30 00:24:57 25 4
gpt4 key购买 nike

我有一个 pandas Dataframe,其中有一列是文件列表

import pandas as pd
df = pd.read_csv('fname.csv')

df.head()

filename A B C
fn1.txt 2 4 5
fn2.txt 1 2 1
fn3.txt ....
....

我想从 filename 中的每个条目中删除文件扩展名 .txt。我该如何做到这一点?

我试过:

df['filename'] = df['filename'].map(lambda x: str(x)[:-4])

但是当我随后使用 df.head() 查看列条目时,没有任何改变。

如何做到这一点?

最佳答案

我想你可以使用 str.replace使用正则表达式 .txt$' ( $ - matches the end of the string ):

import pandas as pd

df = pd.DataFrame({'A': {0: 2, 1: 1},
'C': {0: 5, 1: 1},
'B': {0: 4, 1: 2},
'filename': {0: "txt.txt", 1: "x.txt"}},
columns=['filename','A','B', 'C'])

print df
filename A B C
0 txt.txt 2 4 5
1 x.txt 1 2 1

df['filename'] = df['filename'].str.replace(r'.txt$', '')
print df
filename A B C
0 txt 2 4 5
1 x 1 2 1

df['filename'] = df['filename'].map(lambda x: str(x)[:-4])
print df
filename A B C
0 txt 2 4 5
1 x 1 2 1

df['filename'] = df['filename'].str[:-4]
print df
filename A B C
0 txt 2 4 5
1 x 1 2 1

编辑:

rstrip 可以删除更多的字符,如果字符串的末尾包含条纹字符串的一些字符(在这种情况下 ., t, x):

例子:

print df
filename A B C
0 txt.txt 2 4 5
1 x.txt 1 2 1

df['filename'] = df['filename'].str.rstrip('.txt')

print df
filename A B C
0 2 4 5
1 1 2 1

关于python - 删除 pandas DataFrame 列中字符串条目的结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37001787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com