我从数据帧配置开始
import pandas as pd
getData = lambda n: pd.util.testing.makeTimeDataFrame(n)
origDF = pd.DataFrame([{'weight':70, 'name':'GOLD', 'n':3}, {'weight':30, 'name':'SILVER', 'n':4}])
n name weight
0 3 GOLD 70
1 4 SILVER 30
现在我想通过使用n
列获取数据,将此配置数据帧扩展为完整的数据帧。我想要的结果是
res = []
for row in origDF.iterrows():
tmp = getData(row[1]['n'])
for c,v in row[1].iteritems():
if c != 'n':
tmp[c] = v
res.append(tmp)
res = pd.concat(res)
A B C D name weight
2000-01-03 -0.084821 -0.345260 -0.789547 0.001570 GOLD 70
2000-01-04 -0.035577 -1.283943 -0.304142 -0.978453 GOLD 70
2000-01-05 0.014727 0.400858 -0.607918 1.769886 GOLD 70
2000-01-03 -0.644647 2.142646 0.617880 -0.178515 SILVER 30
2000-01-04 0.256490 -1.037556 -0.224503 0.148258 SILVER 30
2000-01-05 0.679844 0.976823 -0.403927 -0.459163 SILVER 30
2000-01-06 0.433366 0.429025 0.951633 -0.026547 SILVER 30
有没有一个很好的程序,让这个直接没有一个循环?你知道吗
下面是一个解决方案,它在
origDF
中循环一个:相关问题 更多 >
编程相关推荐