如何删除字符串数据框列中第 n 个之后的所有字符?

How to remove all characters after the n first in a string dataframe column?

让我们使用这个简单的数据框:

df = pd.DataFrame(dict(Name=['abc','d',np.nan,'vbnc'],NoMatter=[0,6,2,3]))
   Name  NoMatter
0   abc         0
1     d         6
2   NaN         2
3  vbnc         3

我想在名称列中删除前两个字符串之后的所有字符。

预期输出:

  Name  NoMatter
0   ab         0
1    d         6
2  NaN         2
3   vb         3

请问我该怎么办?

你可以这样做:

df['Name'] = df.Name.str[:2]

输出:

  Name  NoMatter
0   ab         0
1    d         6
2  NaN         2
3   vb         3

另一种方式也可以是这样的:

df.Name = df.Name.apply(lambda x: x[:2] if not pd.isnull(x) else x)