我有一个CSV文件,我正在读取到一个数据帧中
ZoneMaterialName1,ZoneThickness1,ZoneMaterialName2,ZoneThickness2,ZoneMaterialName3,ZoneThickness3,ZoneMaterialName4,ZoneThickness4
Copper,2.5,Silver,5,Gold,12,Selenium,6
Copper,2.5,Silver,5,Gold,12,Selenium,6
Copper,2,Silver,8,Gold,2,Selenium,3
Aluminium,3,Sodium,14,,,Titanium,5
Aluminium,13,Sodium,5,,,Titanium,15
我想生成一个哈希表,该表的键由唯一的4个ZoneMaterialName字段组成,值是它们各自的ZoneThickness数字字段
期望输出的示例:
Copper,Silver,Gold,Selenium:[[2.5,5,12,6],[2,8,2,3]]
Aluminium,Sodium,,Titanium:[[3,14,,5],[13,5,,15]]
如果一个唯一键的四个值再次出现,它们将被忽略,并且只取唯一的值
有时,每行中可能会有一些空字段,但如上所示,在哈希表的键和值中也应该考虑这些字段
我无法有效地做到这一点
import pandas as pd
import numpy as np
df = pd.read_csv('/mnt/c/python_test/Materials.csv')
myfilter = ~df.ZoneMaterialName1.duplicated(keep='first') & \
~df.ZoneMaterialName2.duplicated(keep='first') & \
~df.ZoneMaterialName3.duplicated(keep='first') & \
~df.ZoneMaterialName34.duplicated(keep='first') & \
df.ix[myfilter, 'uniqueID'] = np.arange(myfilter.sum(), dtype='int')
print df
我是熊猫队的新手,因此非常感谢您的帮助/指导
输出
相关问题 更多 >
编程相关推荐