python - 如何将数据框中的 CSV 列转换为行
问题描述
我在语言列中有一个带有 CSV 的数据框
Name Language
0 A French,Espanol
1 B Deutsch,English
我希望将上述数据框转换如下
Name Language
0 A French
1 A Espanol
2 B Deutsch
3 B English
我尝试了以下代码但无法完成
df=df.join(df.pop('Language').str.extractall(',$')[0] .reset_index(level=1,drop=True) .rename('Language')) .reset_index(drop=True)
解决方案
首先创建一个具有相同列的新数据框,然后拆分第二个值并将行附加到数据框。
import pandas as pd
csv_df = pd.DataFrame([['1', '2,3'], ['2', '4,5']], columns=['Name', 'Language'])
df = pd.DataFrame(columns=['Name ', 'Language'])
for index, row in csv_df .iterrows():
name = row['Name']
s = row['Language']
txt = s.split(',')
for x in txt:
df = df.append(pd.Series([name, x], index=df.columns), ignore_index=True)
print(df)
推荐阅读
- javascript - 使哈希值在javascript中唯一?
- python - 使用 Telebot 在特定时间运行代码
- java - 为循环中的局部变量分配空间
- node.js - Sequelize 关于原始查询转换为模型的 nodejs 指南
- eclipse - PyDev 同步系统 PYTHONPATH 导致 Python 崩溃
- javascript - 如何查找具有多个名称的高级元素
- c# - 基于SQL server的登录错误
- arrays - numpy column_stack 的优点
- android-studio - 开发服务器返回响应错误代码:500 in react native 0.56
- node.js - sequelize.js 关联访问器