python - Pandas 从两列中获取随机值
问题描述
示例数据框:
df = pd.DataFrame({
'audio': ['audio1', 'audio2', 'audio3'],
'col1': ['A', 'B', 'C'],
'col2': ['D', 'E', 'F']
})
我需要为每一行随机获取“audio”列的值和 col1 或 col2 列的值,如下所示:
audio value (value is random value from col1 or col2)
audio1 A
audio2 E
audio3 C
解决方案
这是一个numpy
基于的方法:
v = df[['col1', 'col2']].values
ix = np.random.randint(0,v.shape[1],df.shape[0])
df['value'] = np.take_along_axis(v, ix[:,None], 1)
print(df)
audio col1 col2 value
0 audio1 A D D
1 audio2 B E E
2 audio3 C F C
推荐阅读
- java - Hashtags 的最佳 JPA 实体模型
- lambda - 用 Java 8 lambda 重写方法
- python-3.x - 显示子图
- python - Graphene/Django (GraphQL):如何在不访问某些字段的情况下执行查询?
- android - 在 Retrofit 2.0 中检索 JSON 字段时出错
- java - 来自字符串错误的 Java RSA 公钥
- android - xamarin 网格设置行高
- tfs - TFS - 忽略 .tpignore 锁定问题
- docker - 在现有的 asp.net core docker 容器上安装 nginx
- c# - 如何从asp.net C#中的控制数据源反向解析