python - 在 Pandas Dataframe 中组合不同类型的列
问题描述
假设我有一个这样的 DataFrame:
df = pd.DataFrame({'col1':[0.2, 0.3, .5], 'col2':['a', 'b', 'c']})
我想获得第三列 col3 ,它类似于:
{'col1':['20% a', '30% b, '50% c']}
有没有在不迭代 DataFrame 的每一行的情况下解决这个问题?
解决方案
这是一种方式。
df = pd.DataFrame({'col1':[0.2, 0.3, .5], 'col2':['a', 'b', 'c']})
df['col3'] = (df['col1']*100).astype(int).apply(str) + '% ' + df['col2']
print(df)
col1 col2 col3
0 0.2 a 20% a
1 0.3 b 30% b
2 0.5 c 50% c
正如@JonClements 指出的那样,您可以使用lambda
字符串格式,但我对它们过敏.. 只在小剂量下有效:
df['cole'] = df.apply(lambda r: f'{r.col1 * 100}% {r.col2}', 1)
推荐阅读
- ruby-on-rails - Rails 5:附加较大的缩略图
- javascript - 如何从反应按钮 onClick 获取值
- c# - 在 C# 中看不到任何引用静态数组的资源
- android - gradlew.bat 在 Android Studio 中每次提交后总是改变
- sql - SQL 在 char 处拆分字符串,然后将每个拆分为单独的 chars() 作为视图或仅选择
- laravel - 如何在 laravel 5.6 中通过浏览器读取 api 基础项目
- arrays - 从大小为 n 的数组中计算长度为 k 的子序列的数量
- spring - 如何在 oneToMany 中进行 Spring 过滤
- php - Woocommerce 中按位置简码列出的 Dokan 供应商列表
- kubernetes - 在两个副本之间共享一个卷。Kubernetes