使用python拆分列

2024-09-30 01:31:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Csv文件,有一列和一个原始文件。该列有143个值(所有数字),我想拆分该列,使每个值都有自己的列(即143列)

如何使用Python实现这一点?你知道吗

这就是它在csv文件中的样子。访问次数代表天数,因此1是星期一,2是星期二,依此类推。你知道吗

ID             visits



34            12555566

I want to separate them so it looks like this 

ID      visits     0          1



34         1        2        5

0和1只是列名。你知道吗

这是我目前使用的代码

 import pandas as pd
 file=pd.read_csv('trialtr.csv')

import calendar
days = list(calendar.day_name)

data = []
with open('trialtr.csv', 'r') as fh:
    for line in fh:
     data.append(line.split())

data = dict(zip(*data))
d = {day: v for (day, v) in [(day,[int(c)]) for day, c in zip(days, 
data['visits'][1:])]}
d['ID'] = data['ID']
d['visits'] = data['visits'][0]
data = pd.DataFrame(d)

我最终得到了这个错误: “ValueError:dictionary update sequence元素#0的长度为1000;需要2


Tags: 文件csvinimportidfordataas
2条回答

使用此代码将逻辑转换为代码,但此代码也将转换行中的列值。你知道吗

import csv
from itertools import izip
a = izip(*csv.reader(open("input.csv", "rb")))
csv.writer(open("output.csv", "wb")).writerows(a)
import pandas as pd
import calendar
days = list(calendar.day_name)

data = []
with open('test.csv', 'r') as fh:
    for line in fh:
        data.append(line.split())

data = dict(zip(*data))
d = {day: v for (day, v) in [(day,[int(c)]) for day, c in zip(days, data['visits'][1:])]}
d['ID'] = data['ID']
d['visits'] = data['visits'][0]
data = pd.DataFrame(d)

编辑 对它做了一点改进,以获得一个数据帧,其中包含一周中几天的命名列。如果不希望这样,只需将days变量替换为range(7)

尽管如此,我认为你的想法行不通。如果你一天看11次呢?访问列中的第一个数字:不应该是访问总量的总和吗(否则为什么有8个数字?)你知道吗

相关问题 更多 >

    热门问题