如何获取具有值范围的列表并转换为数据框

Posted

技术标签:

【中文标题】如何获取具有值范围的列表并转换为数据框【英文标题】:how to take a list with range of values and convert into a dataframe 【发布时间】:2020-10-14 19:01:34 【问题描述】:
list=['1','matt','26','teacher','yes','2','tom','26','teacher','no','3','stuart','28','teacher','No']

如何从列表中选择前五个值并制作成这样的数据框:

number  name    age   type      employed
1       matt    26    teacher    yes
2       tom     26    teacher    no
3       staurt  28    teacher    No

【问题讨论】:

【参考方案1】:

您已将lst 分成大小均匀的块,在您的情况下为 5。

pd.DataFrame([lst[i:i+5] for i in range(0,len(lst),5)],
             columns = ['number','name','age','type','employed'])

使用iter对其进行概括,使其也可以与生成器一起使用

it = iter(lst)
pd.DataFrame(iter(lambda: list(islice(it,5)),[]),
             columns = ['number','name','age','type','employed'])

输出:

  number    name age     type employed
0      1    matt  26  teacher      yes
1      2     tom  26  teacher       no
2      3  stuart  28  teacher       No

【讨论】:

【参考方案2】:
import pandas as pd 
import numpy as np
edata =['1','matt','26','teacher','yes','2','tom','26','teacher','no','3','stuart','28','teacher','No']
n_rows = 3
n_cols = 5
data = np.array(edata).reshape(n_rows,n_cols)
data = pd.DataFrame(data)
data.columns =['number','name','age','type','employed']

【讨论】:

【参考方案3】:

你可以试试:

pd.DataFrame(np.array(lst).reshape(-1,5), 
             columns=['number','name','age','type','employed'])

输出:

  number    name age     type employed
0      1    matt  26  teacher      yes
1      2     tom  26  teacher       no
2      3  stuart  28  teacher       No

【讨论】:

以上是关于如何获取具有值范围的列表并转换为数据框的主要内容,如果未能解决你的问题,请参考以下文章

如何展平多个嵌套的 json 并转换为数据框?

如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列

Apache Spark:数据框中行值列表的百分比

如何从由 SQL 查询填充的列表框中获取信息?

如何获取熊猫数据框中的行,列中具有最大值并保留原始索引?

如何将嵌套的json结构转换为数据框