大Pandas的面具数字

2024-10-02 18:19:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个输入到一个数据帧的列12345,并想输出到excel工作表作为1xx5如何做到这一点。数据帧列中的数据类型是整数

df=pd.read_excel('INVAMF.xls',sheetname=4,header=0,skiprows=0)
#df created 

print df.dtypes
print np.count_nonzero(pd.value_counts(df['ACCOUNT_NUMBER'].values))

s = (df['ACCOUNT_NUMBER'])

print s
s = s.astype(str)

s.apply(lambda x: x[0] + 'X' * (len(x) - 2) + x[-1])

print s

0        32642
1        32643
2        32644
3        32677
4        32680
5        32680
6        32688
7        32688
8        32695
9        32708
10       32708
11       32709
12       32710
13       32734
14       32734
15       32738
16       32738
17        6109
18        6109
  1. List item

Tags: 数据numberdfread整数accountxlsexcel
1条回答
网友
1楼 · 发布于 2024-10-02 18:19:46

由于您没有发布任何数据和代码,这里有一个通用表单,假设数字的长度是可变的:

In [141]:
s = pd.Series([8815392,2983])
s = s.astype(str)
s.apply(lambda x: x[0] + 'X' * (len(x) - 2) + x[-1])

Out[141]:
0    8XXXXX2
1       2XX3
dtype: object

如果数字长度相等,则可以使用矢量化方法设置整列:

^{pr2}$

另外,为了澄清一个常见的问题,您需要重新分配操作,因为大多数pandas方法返回一个副本并且不能正常工作,尽管有些方法确实有一个inplace参数。因此,您需要执行以下操作:

s = s.apply(lambda x: x[0] + 'X' * (len(x) - 2) + x[-1])

相关问题 更多 >