python从数组列表中删除数据帧
我有这样一份清单:python从数组列表中删除数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有这样一份清单: [[None,'ASK','BID',[4Y',343.545344.621],[7Y',0.016,0.015],[9Y',99.9,99.8] 我想将其转换为数据帧: “4Y”|“ASK”| 343.545 “4Y”|“投标”| 344.621 “7Y”|“ASK”| 0.016 “7Y”|“投标”| 0.015 “9Y”|“ASK”| 99.9 “9Y”|“BID”| 99.8 我尝试过各种“循环”的方法,但它们看起来非常丑陋和低效 花点时间看看你想要什么: arr
[[None,'ASK','BID',[4Y',343.545344.621],[7Y',0.016,0.015],[9Y',99.9,99.8]
我想将其转换为数据帧:
“4Y”|“ASK”| 343.545
“4Y”|“投标”| 344.621
“7Y”|“ASK”| 0.016
“7Y”|“投标”| 0.015
“9Y”|“ASK”| 99.9
“9Y”|“BID”| 99.8
我尝试过各种“循环”的方法,但它们看起来非常丑陋和低效 花点时间看看你想要什么:
arr[0][0] = 'idx'
(pd.DataFrame(arr[1:], columns=arr[0])
.set_index('idx')
.stack()
.reset_index(name='value')
)
输出:
idx level_1 value
0 4Y ASK 343.545
1 4Y BID 344.621
2 7Y ASK 0.016
3 7Y BID 0.015
4 9Y ASK 99.900
5 9Y BID 99.800
假设
l
是您的列表。构造df
和melt
df = pd.DataFrame(l[1:], columns=l[0])
df.rename({None: 'Year'}, axis=1).melt('Year').sort_values('Year')
Out[477]:
Year variable value
0 4Y ASK 343.545
3 4Y BID 344.621
1 7Y ASK 0.016
4 7Y BID 0.015
2 9Y ASK 99.900
5 9Y BID 99.800
pd.DataFrame(the_array)
有什么问题吗?它不会为候选人产生预期的结果,伙计?任何子列表都可能没有吗?@DanielMesejo No,None
只作为第0个子列表的第0个元素出现。我认为这个问题不值得否决。可能有人不同意我的意见。我投这一票是为了抵消否决票。谁说我否决了?更不用说你的问题提供的信息很少。你本可以解释这件事的。