python-3.x - 如何将熊猫行中的元素解析为创建新列的方法?
问题描述
我有以下数据框:
In [282]: f
Out[282]:
Strike
01-02-2019 100.0
01-02-2019 105.0
01-02-2019 110.0
01-02-2019 115.0
01-02-2019 120.0
我想将每个位置的条目解析为一个方法并填充一个新列,如下所示:
def method(i,j):
return(i,j)
for i,j in f.index, f.Strike:
f['newcol']=method(i,j)
但我收到一个错误。我该怎么做?
解决方案
Series.items
在列表理解中使用:
df['new'] = [method(k, v) for k, v in df.Strike.items()]
另一个解决方案zip
:
df['new'] = [method(k, v) for k, v in zip(df.index, df.Strike)]
或使用DataFrame.apply
:
df['new'] = df.apply(lambda x: method(x.name, x.Strike), axis=1)
print (df)
Strike new
01-02-2019 100.0 (01-02-2019, 100.0)
01-02-2019 105.0 (01-02-2019, 105.0)
01-02-2019 110.0 (01-02-2019, 110.0)
01-02-2019 115.0 (01-02-2019, 115.0)
01-02-2019 120.0 (01-02-2019, 120.0)
推荐阅读
- radio-button - 如何在 Delphi 10.4.2 中显示 TGridPanel 中的垂直分隔线,该 TGridPanel 在其列中有一组 TRadioButton
- reactjs - history.push 改变了 url,但是组件没有被渲染
- javascript - 没有 Angular 或 React 的 TypeScript/HTML/CSS 项目是否可以使用 Firebase 存储连接
- javascript - 验证密码确认和后端的密码是否不必要?
- python - 如何在 Pandas DataFrame 中查找特定年份两列的平均值?
- gpu - 为什么将 num_batch_threads 设置为使用 GPU 设置对 CPU 内核进行编号
- keras - 是否可以将预训练的 CNN 部署到没有 nvidia GPU 的机器上?
- javascript - Webpack:仅在构建时捆绑动态加载的模块
- ansible - Ansible:如何在 when 子句中使用“and”和“or”条件
- python - 试图为我的聊天机器人创建一个聊天“模板”