Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用pandas从dataframe中的列接收第一个字符串?_Python - Fatal编程技术网

Python 如何使用pandas从dataframe中的列接收第一个字符串?

Python 如何使用pandas从dataframe中的列接收第一个字符串?,python,Python,emp.csv 我想使用pandas获得列ename的第一个字符串,如下面的结果 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,

emp.csv

我想使用pandas获得列ename的第一个字符串,如下面的结果

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'])
我应该如何使用熊猫获得上述结果

代码:

K
B
C
J
M
A
T
J
W
F
S
S
A
M
将熊猫作为pd导入
输入io
temp=u“”“索引empno ename作业经理雇佣sal通信部门
0,7839,国王,总统,0,1981-11-175000,0,10
17698,布莱克,经理,78391981-05-012850,0,30
277882,克拉克,经理,78391981-05-092450,0,10
37566,琼斯,经理,78391981-04-012975,0,20
马丁,推销员,76981981-09-10125014030
艾伦,销售员,76981981-02-11160030030
67844,特纳,销售员,76981981-08-211500,0,30
7,7900,詹姆斯,书记,76981981-12-11950,0,30
87521,沃德,销售员,76981981-02-23125050030
7902,福特,分析师,75661981-12-113000020
史密斯,职员,79021980-12-09800,0,20
117788,斯科特,分析师,75661982-12-223000,0,20
1287876,亚当斯,书记,77881983-01-1511000,20
137934,米勒,职员,77821982-01-1113000,10“
#测试后,将io.StringIO(temp)替换为文件名
emp=pd.read\U csv(io.StringIO(temp),
skipinitialspace=True,
skiprows=1,
parse_dates=[5],
名称=['index'、'empno'、'ename'、'job'、'mgr'、'hiredate'、'sal'、'comm'、'deptno'])
emprusult= 您可以尝试以下代码:

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'])

    emprusult =   ?   <--- i want to this code.

    print(emprusult)
它将创建另一个名为
firstEname
的列,并用每个
ename
出现的第一个字符填充该列

emp['firstEname']
的输出:

emp['firstEname'] = emp['ename'].apply(lambda x: x[0])

不客气!请,如果这个答案帮助你,考虑接受它!我想接受你的回答。我如何在此网站接受您的答案?选中答案旁边的复选标记,将其从空心切换为绿色。有关更多信息:
0     K
1     B
2     C
3     J
4     M
5     A
6     T
7     J
8     W
9     F
10    S
11    S
12    A
13    M
Name: firstEname, dtype: object