您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python将逗号分隔的列表转换为pandas数据框

Python将逗号分隔的列表转换为pandas数据框

您需要分割列表中的每个字符串:

import  pandas as pd

df = pd.DataFrame([sub.split(",") for sub in l])
print(df)

输出

   0         1   2               3         4               5         6
0  AN  2__AS000  26  20150826113000  -283.000  20150826120000  -283.000
1  AN   2__A000  26  20150826113000     0.000  20150826120000     0.000
2  AN  2__AE000  26  20150826113000  -269.000  20150826120000  -269.000
3  AN  2__AE000  26  20150826113000  -255.000  20150826120000  -255.000
4  AN   2__AE00  26  20150826113000  -254.000  20150826120000  -254.000

如果您知道在csv中跳过多少行,则可以使用read_csv使用skiprows=lines_of_Metadata以下命令完成所有操作:

import  pandas as pd

df = pd.read_csv("in.csv",skiprows=3,header=None)
print(df)

或者,如果元数据的每一行都以某个特定字符开头,则可以使用注释:

df = pd.read_csv("in.csv",header=None,comment="#")

如果你需要指定一个以上的字符,你可以组合itertools.takewhile这将下降开头为xxx

import pandas as pd
from itertools import dropwhile
import csv
with open("in.csv") as f:
    f = dropwhile(lambda x: x.startswith("#!!"), f)
    r = csv.reader(f)
    df = pd.DataFrame().from_records(r)

使用输入数据,添加以#!!开头的几行:

#!! varIoUs
#!! Metadata
#!! lines
AN,2__AS000,26,20150826113000,-283.000,20150826120000,-283.000
AN,2__A000,26,20150826113000,0.000,20150826120000,0.000
AN,2__AE000,26,20150826113000,-269.000,20150826120000,-269.000
AN,2__AE000,26,20150826113000,-255.000,20150826120000,-255.000
AN,2__AE00,26,20150826113000,-254.000,20150826120000,-254.000

输出

    0         1   2               3         4               5         6
0  AN  2__AS000  26  20150826113000  -283.000  20150826120000  -283.000
1  AN   2__A000  26  20150826113000     0.000  20150826120000     0.000
2  AN  2__AE000  26  20150826113000  -269.000  20150826120000  -269.000
3  AN  2__AE000  26  20150826113000  -255.000  20150826120000  -255.000
4  AN   2__AE00  26  20150826113000  -254.000  20150826120000  -254.000
python 2022/1/1 18:31:58 有598人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶