【发布时间】:2020-04-24 03:38:05
【问题描述】:
我有一个数据
#创建一些带有名称列的数据
data = pd.DataFrame({'Names': ['Joe', 'John', 'Jasper', 'Jez'] *4, 'Add': ['Lo', 'Po', 'Fa',
'It']*4,'Ob1' : np.random.rand(16), 'Ob2' : np.random.rand(16)})
& 使用另一个数据框作为地图创建了一个包含数据子集的列表(仅包含我想要的名称)
import pandas as pd
#Mapping file
data2 = pd.DataFrame({
"Names": ["Joe", "John"],
"Add": ["Lo", "Po"]})
tuples = [tuple(x) for x in data2.values]
my_dfs = [data[(data['Names'] == mytuple[0]) & (data['Add'] == mytuple[1])] for mytuple in
tuples]
for my_df in my_dfs:
print(my_df)
& 我得到以下输出:
[ Names Add Ob1 Ob2
Joe Lo 0.999 0.403
Joe Lo 0.509 0.570
Joe Lo 0.180 0.775
Joe Lo 0.010 0.591
Names Add Ob1 Ob2
John Po 0.040 0.256
John Po 0.673 0.869
John Po 0.915 0.593
John Po 0.865 0.298 ]
"my_dfs" 是列表的列表。有可能吗:
我。通过展平上面的列表以及如何最好地完成来创建数据框。尝试了以下但没有给我正确的输出:
flattened_list = []
for x in my_dfs:
flattened_list.append(x)
最终输出的位置:
Names Add Ob1 Ob2
Joe Lo 0.999 0.403
Joe Lo 0.509 0.570
Joe Lo 0.180 0.775
Joe Lo 0.010 0.591
John Po 0.040 0.256
John Po 0.673 0.869
John Po 0.915 0.593
John Po 0.865 0.298
标题不会出现两次
二。创建不同的数据帧(在本例中为 2 个数据帧,一个用于 Joe,另一个用于 John。
Joe:
Names Add Ob1 Ob2
Joe Lo 0.999 0.403
Joe Lo 0.509 0.570
Joe Lo 0.180 0.775
Joe Lo 0.010 0.591
John:
Names Add Ob1 Ob2
John Po 0.040 0.256
John Po 0.673 0.869
John Po 0.915 0.593
John Po 0.865 0.298
有人可以帮忙吗?
【问题讨论】:
标签: python list dataframe flatten