我有一个熊猫数据帧,其中有一列文件列表
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])
但是当我用<code>df查看列条目时。head(),没有任何变化。
如何做到这一点?
您可能需要:
df['文件名'] = df.apply(lambda x: x['文件名'][:-4],轴 = 1)
您可以使用< code>str.rstrip来删除结尾:
df['filename'] = df['filename'].str.rstrip('.txt')
应该管用
我认为您可以使用str.replace
与regex. txt$'
($
-匹配字符串的末尾):
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
编辑:
如果字符串的末尾包含一些条带化字符串的字符(在本例中为 .
, t
, x
),则 rstrip
可以删除更多字符:
例:
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
问题内容: 我对此有一个类似的问题:Pandas DataFrame:从一列中的字符串中删除不需要的部分 。 所以我用了: 大多数项目以“ PPI /”开头,但并非全部。似乎当没有’PPI /’后缀的项目遇到此错误时: AttributeError:“ float”对象没有属性“ lstrip” 我在这里想念什么吗? 问题答案: 使用replace: 或string.replace:
考虑到以下情况,我很难理解这里的机制。 我有一个从: 我想删除列a1中包含“aa”的所有行 我相信我已经尝试了这里的一切,但仍然得到了: ValueError:标签[False False False...False False]轴中不包含 是的,我也试过 任何帮助都将不胜感激,谢谢。
问题内容: 我已经尝试解决这个问题一段时间了,我试图从DB_user列中删除非ASCII字符并尝试将它们替换为空格。但是我不断出错。这是我的数据框的外观: 我正在使用此功能,这是我在研究SO问题时遇到的。 我不断收到错误: 但是,我认为通过使用filter_func函数中的循环,可以通过在’ord’中输入一个char来解决这个问题。因此,当它遇到非ASCII字符时,应将其替换为空格。 有人可以帮我
我想从字符串类型的熊猫列中删除小数点 Df 我正试着去掉那一栏的小数 df['Net Sales']已经是字符串类型。 我尝试如下: < code>df['净销售额'] = df['净销售额']。astype(str)。替换(' \.0 ','',regex=True) 但我得到的错误如下: < code>ValueError:基数为10的int()的文本无效:“1567.55” 谢谢。
问题内容: 我有一串琴弦,其中一些琴弦。我只想删除最后四个字符。 换句话说,我有 我希望它成为 Python处理此问题的方法是什么? 问题答案:
我必须解决这个问题:目标:删除大多数行缺少输入的列:1。数据帧df:数据帧2。阈值:确定将删除哪些列。如果阈值为.9,则缺少90%值的列将被丢弃:1。带删除列的数据帧df(如果未删除任何列,则返回相同的数据帧) Excel文档截图 我编码了这个: 我必须有“自我、博士和阈值”,不能添加更多。代码必须通过下面的测试用例: 当我运行VT.drop_nan_col(df,0.9). head()时,我不