如果我有以下内容,如何使 pd.DataFrame() 将此数组转换为具有两列的数据框。最有效的方法是什么?我当前的方法包括将每个副本创建为一系列副本,并从中创建数据帧。
由此:
([[u'294 (24%) L', u'294 (26%) R'],
[u'981 (71%) L', u'981 (82%) R'],])
to
x y
294 294
981 981
而不是
x
[u'294 (24%) L', u'294 (26%) R']
我目前的做法。寻找更高效的东西
numL = pd.Series(numlist).map(lambda x: x[0])
numR = pd.Series(numlist).map(lambda x: x[1])
nL = pd.DataFrame(numL, columns=['left_num'])
nR = pd.DataFrame(numR, columns=['right_num'])
nLR = nL.join(nR)
nLR
更新**
我注意到我的错误只是归结为当您 pd.DataFrame() 列表与系列时。当您从列表中创建数据框时,它会将项目合并到同一列中。清单则不然。这以最有效的方式解决了我的问题。
data = [[u'294 (24%) L', u'294 (26%) R'], [u'981 (71%) L', u'981 (82%) R'],]
clean_data = [[int(item.split()[0]) for item in row] for row in data]
# clean_data: [[294, 294], [981, 981]]
pd.DataFrame(clean_data, columns=list('xy'))
# x y
# 0 294 294
# 1 981 981
#
# [2 rows x 2 columns]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)