熊猫数据框中有以下数据类型:
>>> results_df.dtypes
_id int64
playerId int64
leagueId int64
firstName object
lastName object
fullName object
shortName object
gender object
nickName object
height float64
jerseyNum object
position object
teamId int64
updated datetime64[ns, UTC]
teamMarket object
conferenceId int64
teamName object
updatedDate object
competitionIds object
dtype: object
object
类型在这里的.dtypes
输出中没有帮助,因为有些列是普通字符串(例如firstName
,lastName
),而其他列则更复杂(competitionIds
是int64s的一个numpy.ndarray)
我们希望将competitionIds
和任何其他numpy.ndarray
列转换为列表列,而不显式传递competitionIds
,因为并不总是知道哪些列是numpy.ndarray
列。因此,即使这样做有效:results_df['competitionIds'] = results_df['competitionIds'].apply(list)
,它也不能完全解决问题,因为我在这里显式地传递competitionIds
,而我们需要自动检测哪些列是numpy.ndarray
列
Pandas将任何不是int、float或category的东西都视为“对象”(包括
list
!)。因此,最好的方法是查看列的实际元素的类型:这将阻止您转换可能需要保留的其他类型(例如集合)
下面是一个我所想的玩具示例:
导致:
相关问题 更多 >
编程相关推荐