python-3.x - 将数据框列名复制到新行
问题描述
我正在读取文件并转换为数据框。由于文件没有组织,我在读取为 csv 时将标题保持为 0。默认情况下,如果 header = 0 pandas 自动分配 df 的第一行
"Name"=>"Mark" "Phone"=>"1234567" "Id"=>"E1234" "Admin"=>false
0 "Name"=>"Anto" "Phone"=>"7654321" "Dept"=>"HR" "Id"=>"E4321" "case"=>nil
我的最终目标是将数据帧转换为可读格式
Name Phone Id Dept Admin case
Mark 1234567 E1234 false
Anto 7654321 E4321 HR nil
由于第一行已经移至列,我无法对第一行进行操作。是否可以复制列名并将其粘贴为同一数据框的第一行?
注意:由于文件没有组织,因此每行中的数据都不同。因此,我避免使用 header = NONE。
解决方案
一个想法是创建字典列表并传递给DataFrame
构造函数:
out = []
with open("Sample.csv") as f:
for line in f:
d = dict([[y.strip('"') for y in x.split('=>')] for x in line.strip().split(',')])
out.append(d)
df = pd.DataFrame(out)
print (df)
Name Phone Id Admin Dept case
0 Mark 1234567 E1234 false NaN NaN
1 Anto 7654321 E4321 NaN HR nil
文件:
"Name"=>"Mark","Phone"=>"1234567","Id"=>"E1234","Admin"=>false
"Name"=>"Anto","Phone"=>"7654321","Dept"=>"HR","Id"=>"E4321","case"=>nil
推荐阅读
- pandas - 在数据框中添加两个元素(基于索引)
- r - 试图一次对很多对象做同样的事情
- c++ - 使用 push_back() 和 pop_back 操作的向量分配如何给出垃圾值
- telegram - 使用 API 向 Telegram 联系人或联系人列表发送消息
- redirect - Traefik - 重定向到 HTTPS 到内部资源期间的超时
- docker - 使用 docker compose 标记图像/容器
- capitalization - 你如何在javascript中将整个单词大写?
- function - 是否有可能在 PhpStorm 项目中找到未使用的功能(程序)
- javascript - 通过 JS 为 .less 样式表设置 href
- java - 抛出 ConstraintViolationException 时如何获取经过验证的字段名称而不是 arg0