如何在Python/Jupyter中从DataFrame拆分列生成Series?
解决DataFrame拆分指定列为独立Series的问题
你之前的代码出错主要有两个小细节问题,咱们一步步来修正:
首先,你已经正确创建了包含目标列的DataFrame,这部分逻辑没问题:
columns = ['Emerging Markets','Event Driven'] TargetData = Hedgefunds[columns]
错误原因分析
你尝试拆分时的代码存在两处问题:
Emerging_Markets_Column = ['Emerging Markets'] EM = TargetData['Emerging_Markets-Column']
- 变量名拼写错误:你定义的变量是
Emerging_Markets_Column(下划线连接),但调用时写成了Emerging_Markets-Column(减号连接),Python会把减号识别为算术运算符,直接触发报错; - 取列方式不对:就算变量名写对了,用列表
['Emerging Markets']取列得到的还是DataFrame,不是你想要的Series类型。
正确拆分方法
要直接提取单列并转为Series,只需要用单括号+列名字符串即可:
# 提取"Emerging Markets"列转为Series EM = TargetData['Emerging Markets'] # 提取"Event Driven"列转为Series ED = TargetData['Event Driven']
如果不确定是否得到了正确的Series,可以用type(EM)验证,输出结果应该是pandas.core.series.Series。
另外补充个小技巧:如果你担心列名拼写出错,可以用变量存储列名再调用,更稳妥:
em_col = 'Emerging Markets' ed_col = 'Event Driven' EM = TargetData[em_col] ED = TargetData[ed_col]
内容的提问来源于stack exchange,提问作者AATU




