Python 不将相同的函数应用于列的所有行?
我想从pandas列的值中提取第一个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
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)))