我正在寻找一种方法来优化我的代码。
我有此表格中的输入数据:
import pandas as pn
a=[{'Feature1': 'aa1','Feature2': 'bb1','Feature3': 'cc2' },
{'Feature1': 'aa2','Feature2': 'bb2' },
{'Feature1': 'aa1','Feature2': 'cc1' }
]
b=['num1','num2','num3']
df= pn.DataFrame({'num':b, 'dic':a })
我想从上面数据框中“dic”(如果存在)列的字典中提取元素“Feature3”。到目前为止,我能解决它,但我不知道这是否是最快的方法,它似乎有点过于复杂。
Feature3=[]
for idx, row in df['dic'].iteritems():
l=row.keys()
if 'Feature3' in l:
Feature3.append(row['Feature3'])
else:
Feature3.append(None)
df['Feature3']=Feature3
print df
有没有更好/更快/更简单的方法来提取这个特性3以分离数据帧中的列?
提前谢谢你的帮助。
同意maxymoo。考虑更改数据帧的格式。
(旁注:熊猫一般作为pd进口)
如果你
apply
aSeries
,你会得到一个非常好的DataFrame
:从这一点上说,你可以使用常规的熊猫手术。
您可以使用列表理解从数据框中的每一行提取功能3,返回一个列表。
如果'Feature3'不在
dic
中,则默认情况下返回None。您甚至不需要panda,因为您可以再次使用列表理解从原始字典中提取功能。
相关问题 更多 >
编程相关推荐