如何在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]
使用列表理解结合for
和if
的下列代码检查每个组合:
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