Python 不将相同的函数应用于列的所有行?

Python 不将相同的函数应用于列的所有行?,python,pandas,apply,Python,Pandas,Apply,我想从pandas列的值中提取第一个3,而不进行循环 所以 为了提取前3位数字,我执行以下操作: int(str(df['myCol'][3])[:2]) 547 我想对整个列应用相同的过程。我该怎么做呢?我认为需要通过索引选择,然后转换为整数s: df['myCol'].str[:2].astype(int) 如果输入值是整数,首先转换为strings: df['myCol'].astype(str).str[:2].astype(int) 假设您有一个数字列: In [189]: df

我想从pandas列的值中提取第一个
3
,而不进行循环

所以

为了提取前3位数字,我执行以下操作:

int(str(df['myCol'][3])[:2])
547

我想对整个列应用相同的过程。我该怎么做呢?

我认为需要通过索引选择,然后转换为
整数
s:

df['myCol'].str[:2].astype(int)
如果输入值是整数,首先转换为
string
s:

df['myCol'].astype(str).str[:2].astype(int)

假设您有一个数字列:

In [189]: df
Out[189]:
    myCol
0    5475
1   99999
2  123456

In [190]: df.dtypes
Out[190]:
myCol    int64
dtype: object

In [191]: df['myCol'] // 10**(np.log10(df.myCol).astype(int) - 2)
Out[191]:
0    547
1    999
2    123
Name: myCol, dtype: int64

如果你喜欢玩
格式
这个也可以:

df['myCol'].map(lambda x: '{:.3}'.format(str(x)))
请阅读并相应编辑您的帖子。
df['myCol'].map(lambda x: '{:.3}'.format(str(x)))