dataframe - 数据框索引值
问题描述
我有一个数据框 df = pd.DataFrame({'Event1':['Music', 'Poetry', 'Theatre', 'Comedy'], 'Event2':[Poetry, Music, Dance, Theater]})
我需要创建一个名为“Val”的新列,该列具有来自事件 2 的元素的索引,因为它发生在事件 1 中。例如 Val 将是 'Val':[1,0,NaN,2]。
解决方案
这是您可以执行的一种方法:
解决方案 1
import numpy as np
df['val'] = df['Event2'].apply(lambda x: np.where(x == df['Event1'])[0][0])
print(df)
Event1 Event2 val
0 Music Poetry 1
1 Poetry Music 0
2 Theatre Comedy 3
3 Comedy Theatre 2
解决方案 2
df = pd.DataFrame({'Event1':['Music', 'Poetry', 'Theater', 'Comedy'], 'Event2':['Poetry', 'Music', 'Dance', 'Theater']})
df['val'] = (df['Event2']
.apply(lambda x: np.argwhere(x == df['Event1']))
.apply(lambda x: x[0][0] if len(x)>0 else x)
)
df['val'] = pd.to_numeric(df['val'], errors='coerce')
print(df)
Event1 Event2 val
0 Music Poetry 1.0
1 Poetry Music 0.0
2 Theater Dance NaN
3 Comedy Theater 2.0
推荐阅读
- html - 无法在字符串 'userForm' 上创建属性 'validator' - 使用组件工厂
- java - 键入列表的第一个/第二个/第三个参数
- r - 从数据帧中获取值以循环操作到另一个数据帧
- json - NiFi 中的 JoltTransformJSON 处理器
- bash - 如何创建运行 vswhere.exe 并使用空格执行路径的 ZSH 别名(在 WSL 上)?
- c# - C# 试图弄清楚如何将负值合并到我的代码中
- bamboo - 如何从 BAMBOO 调用 Rest API
- python - 猪在Python中拉丁化字符串
- macos - 滚动时如何在 NSTableview 中显示滚动指示器,不滚动时隐藏
- nativescript - 如何在 nativescript angular 中从本地 ios 访问 UIScrollview 委托?