python - Python:将一行的多行拆分为单个(单独)行
问题描述
我有一个包含公司和人员名称的数据框。例如,在同一行中,第一列是公司名称,第二列是公司成员的姓名(每行一个名称)。每个公司的人数都不一样,我有100多家公司。
这是数据集的示例:
Company name DM Full name
LA CAMPAGNOLA SA Mr Victor Daniel Martin
Mr Fernando Luis Falco
Mr Gustavo Pablo Macchi
Mr Marcelo Dario Siano
INVERSORA ELECTRICA S.A. Mr Luis Pablo Rogelio Pagano
Mr Damian Eduardo Sanfilippo
Mr Sebastian Cordova Moyano
Ms Sylvina Gabriela Sanchez
Mr Luis Rodolfo Secco
Mr Jaime Javier Barba
我需要的是创建一个新的数据框,其中每一行都是一个独立的项目,其中包括公司名称和员工姓名,如下所示:
Company name DM Full name
LA CAMPAGNOLA SA Victor Daniel Martin
LA CAMPAGNOLA SA Fernando Luis Falco
LA CAMPAGNOLA SA Gustavo Pablo Macchi
LA CAMPAGNOLA SA Marcelo Dario Siano
INVERSORA ELECTRICA S.A. Luis Pablo Rogelio Pagano
INVERSORA ELECTRICA S.A. Damian Eduardo Sanfilippo
INVERSORA ELECTRICA S.A. Sebastian Cordova Moyano
INVERSORA ELECTRICA S.A. Sylvina Gabriela Sanchez
INVERSORA ELECTRICA S.A. Luis Rodolfo Secco
INVERSORA ELECTRICA S.A. Jaime Javier Barba
我找到了不同的示例作为方法,但没有一个有效。例如:在 pandas 数据框中将单元格拆分为多行
有人可以帮我看看怎么做吗?
解决方案
我设法解决了这个问题:
colNames = ('Company name','DM Full name')
# Define a dataframe with the required column names
masterDF = pd.DataFrame(columns = colNames)
for i in range (0, len(df)):
names=df[df.columns[1]][i]
names=names.splitlines()
for name in names:
count+=1
if name.replace(' ','').isalpha():
name=name.replace('Mr ','').replace('Ms ','')
company=df[df.columns[0]][i]
company=company.replace('\n',' ')
else:
pass
a = str(company)
b = str(name)
masterDF = masterDF.append({'Company name': a, 'DM Full name': b}, ignore_index=True)
print masterDF
推荐阅读
- c# - 将公式添加到 OpenXML 文字处理文档并以专业格式显示
- xpath - 如何在谷歌表格中为 importxml 找出正确的 xpath?
- javascript - 我应该创建一个只有 1 个表的数据库还是最好使用像数据库这样的 javascript 对象?
- c# - 用户控件的数据绑定不适用于按钮背景图像源
- html - 如何标准化跨浏览器的文本不一致的垂直对齐方式?
- css - 无法弄清楚如何使用 CSS 网格将徽标和导航连续对齐
- java - 调用父类和子类中可用的方法时,在多态中选择了哪种方法?
- python - 获取 Flask 表单数据输入并将其转换为 Pandas 数据框以进行 ML 建模
- ansible - 使用字典和循环的 Ansible 剧本中的语法错误
- firebase - 项目之间的 Firestore 和存储桶导出/导入