我有如下数据帧:
数据框=
A B D
a1 b1 9052091001A
a2 b2 95993854906
a3 b3 93492480190
a4 b4 93240941993
我想要的是:
数据框响应=
A B D
a1 b1 001A
a2 b2 4906
a3 b3 0190
a4 b4 1993
我尝试的是:
for i in (0,len(df['D'])):
df['D'][i]= df['D'][i][-4:]
我得到的错误:
KeyError: 4906
而且,这需要很长时间,我认为应该有一个更快的方法来对付熊猫。你知道吗
Tags:
使用^{} 字符串访问器进行矢量化字符串操作。与使用
apply
相比,它们更受欢迎。你知道吗如果
D
元素已经是字符串如果没有
你可以在原地改变
使用
pandas.Series
的apply()
方法,它将比使用for
循环进行迭代快得多。。。你知道吗这应该有效(前提是列仅包含字符串):
至于
KeyError
,它可能来自数据帧的索引,因为调用df['D'][i]
等同于df.loc[i]['D']
,即i
指的是索引的标签,而不是它的位置。如果用df.loc[i]['D']
替换它(可能)会起作用,它引用位于i
位置的索引。你知道吗我希望这有帮助!你知道吗
相关问题 更多 >
编程相关推荐