如何解决将pandas df中的列名称和索引转换为列本身具有相应的值作为第三列的有效方法?
我在python中有一个非常大的数据集,它来自一个净CDF文件。列名称是纬度,索引是经度。对于数据库中的每个索引/列,我都有一个z值。我想要一个带有列foreach ($array as $a){
$asset->attributes()->where('id',$a['id'])->update(unset($a['id']));
}
的新数据框。我能够使用itertools提出一种解决方案,但我的数据框尺寸为(7200,14400),可提供103,680,000个值进行迭代。有没有更有效的方法来做到这一点。我在这里提供示例输入和输出,以简化测试。大熊猫中是否有枢轴功能或另一种有效的方法来解决此问题?
['Latitude','Longitude','Z']
这是可行的解决方案,但是很慢。
#import libraries
import numpy as np
import pandas as pd
import itertools
#Create Sample Data
columns=['a','b','c']
rows=['1','2','3']
d_base=np.array([0.1,0.2,0.3])
data=np.tile(d_base,(3,1))
#create df
df=pd.DataFrame(data,columns=columns,index=rows)
df
Out[]
a b c
1 0.1 0.2 0.3
2 0.1 0.2 0.3
3 0.1 0.2 0.3
解决方法
您可以使用melt
s = df.reset_index().melt('index')
Out[18]:
index variable value
0 1 a 0.1
1 2 a 0.1
2 3 a 0.1
3 1 b 0.2
4 2 b 0.2
5 3 b 0.2
6 1 c 0.3
7 2 c 0.3
8 3 c 0.3
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。