如何通过使用循环为数据帧中的各个字符串分配不同的数字来创建新列?例如:['buy','sell',hold']设为[-1,+ 1,0]吗?
这是我的专栏,我希望添加一个新专栏
答案 0 :(得分:1)
使用多个赋值语句。 (我不确定添加新列的含义,因此也许可以说明您正在考虑的数据结构。)
示例:
>>> d = {'buy': [1], 'sell': [3], 'hold': [5]}
>>> df = pd.DataFrame(data=d)
>>> d['buy'],d['sell'],d['hold'] = -1, 1, 0
>>> print (d)
{'sell': 1, 'hold': 0, 'buy': -1}
答案 1 :(得分:0)
听起来您只是在寻找熊猫的map
方法:
>>> df = pd.DataFrame({
... 'stock': ['AAAA', 'BBBB', 'CCCC', 'DDDD', 'EEEE', 'FFFF'],
... 'disposition': ['buy', 'buy', 'sell', 'hold', 'buy', 'sell']})
>>> df['change'] = df.disposition.map({'buy': -1, 'sell': +1, 'hold': 0})
>>> df
disposition stock change
0 buy AAAA -1
1 buy BBBB -1
2 sell CCCC 1
3 hold DDDD 0
4 buy EEEE -1
5 sell FFFF 1