如何在python

创建数据帧我有表像下面 (在这个例子中,它代表的名单,但这不需要是给出列表)如何在python

age=[3,4,5,6] 

sex=[1,2]

limit=[3,4]

我想创建数据帧,其有各种组合。

但“限制”列超过“年龄”列。

所以我期望的结果是这样的。

age sex limit 

3 1 3

3 1 4

4 1 4

3 2 3

3 2 4

4 2 4

我该如何得到这个结果?

回答:

此解决方案使用Numpy和Pandas使用'limit'大于或等于'age'的约束创建组合的数据框。请注意,您的帖子中写道:“大于”,但你的输出的例子显示了“大于或等于”:

import itertools 

age=[3,4,5,6]

sex=[1,2]

limit=[3,4]

a = [age, sex, limit]

mylist = list(itertools.product(*a))

import pandas as pd

import numpy as np

df = pd.DataFrame(np.array(mylist).reshape(len(mylist),3), columns = ["age","sex","limit"])

df2 = df[df['limit'] >= df['age']]

print df2.to_string(index=False)

输出是:

age sex limit 

3 1 3

3 1 4

3 2 3

3 2 4

4 1 4

4 2 4

回答:

基本数据:

age=[3,4,5,6] 

sex=[1,2]

limit=[3,4]

使用列表理解结合forif的下列代码检查每个组合:

lst = [(a, s, l) 

for a in age

for l in limit

if l >= a

for s in sex]

df = pd.DataFrame(data=lst, columns=["age","sex","limit"])

print(df)

输出:

age sex limit 

0 3 1 3

1 3 1 4

2 3 2 3

3 3 2 4

4 4 1 4

5 4 2 4

以上是 如何在python 的全部内容, 来源链接: utcz.com/qa/260326.html

回到顶部