2016-07-13 21 views
1

我怎样才能得到星号(*)而不是数字0的结果?我怎样才能得到星号(*)而不是数字0的结果?

emp.csv

import pandas as pd 
import io 

temp=u"""index empno ename job mgr hiredate sal comm deptno 
0, 7839, KING, PRESIDENT, 0, 1981-11-17,  5000, 0, 10 
1, 7698, BLAKE, MANAGER, 7839, 1981-05-01, 2850, 0, 30 
2, 7782, CLARK, MANAGER, 7839, 1981-05-09, 2450, 0, 10 
3, 7566, JONES, MANAGER, 7839, 1981-04-01, 2975, 0, 20 
4, 7654, MARTIN, SALESMAN, 7698, 1981-09-10, 1250, 1400, 30 
5, 7499, ALLEN, SALESMAN, 7698, 1981-02-11, 1600, 300, 30 
6, 7844, TURNER, SALESMAN, 7698, 1981-08-21, 1500, 0, 30 
7, 7900, JAMES, CLERK,  7698, 1981-12-11, 950, 0, 30 
8, 7521, WARD, SALESMAN, 7698, 1981-02-23, 1250, 500, 30 
9, 7902, FORD, ANALYST, 7566, 1981-12-11, 3000, 0, 20 
10, 7369, SMITH, CLERK,  7902, 1980-12-09, 800, 0, 20 
11, 7788, SCOTT, ANALYST, 7566, 1982-12-22, 3000, 0, 20 
12, 7876, ADAMS, CLERK,  7788, 1983-01-15, 1100, 0, 20 
13, 7934, MILLER, CLERK,  7782, 1982-01-11, 1300, 0, 10""" 
#after testing replace io.StringIO(temp) to filename 
emp = pd.read_csv(io.StringIO(temp), 
       skipinitialspace=True, 
       skiprows=1, 
       parse_dates=[5], 
       names=['index','empno','ename', 'job','mgr','hiredate','sal','comm','deptno']) 

我想显示星号(*),而不是EMP数据帧列萨尔的0号。

我想用熊猫得到下面的结果。

result : 

5*** 
285* 
245* 
2975 
125* 
16** 
15** 
95* 
125* 
3*** 
8** 
3*** 
11** 
13** 

代码:

import sys 

import pandas as pd 
import dateutil 



# Load data from csv file 
emp = pd.DataFrame.from_csv("D:\R data\emp.csv") 
# Convert date from string to date times 
emp['hiredate'] = emp['hiredate'].apply(dateutil.parser.parse, dayfirst=True) 


print(emp['sal'].replace(3,'f',inplace=True)) <----- I want change this line. 
+1

只是为了检查:你试过这个:(>强调行) > emp ['sal'] = emp [' sal']。astype(str) > emp ['sal'] = emp ['sal']。str.replace('0','*') – Carst

+0

非常感谢! –

+0

@Carst你可以发布这个答案吗? – ayhan

回答

2

以供将来参考(和高兴,我可以帮助你):

emp['sal'] = emp['sal'].astype(str) 
emp['sal'] = emp['sal'].str.replace('0', '*') 

要解释一下:首先,我们投的列作为一个字符串(需要做的替换)。然后我们使用一个漂亮的熊猫操作“.str”,它允许你直接在数据系列上使用很多python字符串函数。 (也有一个日期时间的变种,你可以做类似“.dt.weekday”的东西)

+1

谢谢你的回答。 –

相关问题