Python pandas 从列中删除最后一个字符串/符号

Ane*_*tin 0 python csv pandas

我有一个很大的 csv,其中有一列包含以零开头并以 .

看起来像 ..

TC_NUM
0101.0001.
0101.0002.
0101.0003.
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像..

TC_NUM

    0101.0001
    0101.0002
    0101.0003
Run Code Online (Sandbox Code Playgroud)

我的代码:

df3['TC_NUM'] = df3['TC_NUM'].astype(str).str[:-1]
Run Code Online (Sandbox Code Playgroud)

我的代码输出错误..

TC_NUM
101.0001
101.0002
101.0003
101.0004
101.0005
Run Code Online (Sandbox Code Playgroud)

使用 edchums 修复..

df4 = pd.read_csv('output2.csv', dtype=object, index_col=0)
print df4.head()
df4['TC_NUM'] = df4['TC_NUM'].str[:-1]
Run Code Online (Sandbox Code Playgroud)

打印正确..

0                 dialog_testcase_0101.0001_greeting.xml       0101.0001
1                 dialog_testcase_0101.0002_greeting.xml       0101.0002
2                 dialog_testcase_0101.0003_greeting.xml       0101.0003
3                 dialog_testcase_0101.0004_greeting.xml       0101.0004
4                 dialog_testcase_0101.0005_greeting.xml       0101.0005
Run Code Online (Sandbox Code Playgroud)

但用这个

df4['TC_NUM'] = df4['TC_NUM'].str[:-1]
print df4.head
df4.to_csv('output2.csv', dtype=object,index_col=0)
Run Code Online (Sandbox Code Playgroud)

生成的 csv 输出是..

0   dialog_testcase_0101.0001_greeting.xml  101.0001
1   dialog_testcase_0101.0002_greeting.xml  101.0002
2   dialog_testcase_0101.0003_greeting.xml  101.0003
3   dialog_testcase_0101.0004_greeting.xml  101.0004
Run Code Online (Sandbox Code Playgroud)

因此缺少开头的 0

EdC*_*ica 6

您需要将其读入,str然后才能对其进行切片:

In [11]:
t="""TC_NUM
0101.0001.
0101.0002.
0101.0003."""
df = pd.read_csv(io.StringIO(t), dtype=object)
df

Out[11]:
       TC_NUM
0  0101.0001.
1  0101.0002.
2  0101.0003.

In [13]:
df['TC_NUM'] = df['TC_NUM'].str[:-1]
df

Out[13]:
      TC_NUM
0  0101.0001
1  0101.0002
2  0101.0003
Run Code Online (Sandbox Code Playgroud)