首页 > 解决方案 > 为 DataFrame 中的每一列创建新的 Series 变量

问题描述

给定 a DataFrame,我想运行代码,为每一列创建一个与列同名的新变量。

例如,给定这个DataFrame

df = pd.DataFrame({'nums': [1, 2], 'strings': ['a', 'b']})

我想要产生两个Series变量的代码:(nums[1, 2]strings(['a','b']`)。

标签: pythonpandasscope

解决方案


推荐,但也可以通过其他解决方案:

for i in df.columns:
    globals()[i] =  df[i]
print (nums)
0    1
1    2
Name: nums, dtype: int64

所以更好的是创建Seriesby DataFrame.to_dictwithorient='series'和 select by keys 的字典:

d = df.to_dict('series')
print(d['nums'])

0    1
1    2
Name: nums, dtype: int64

推荐阅读