python - 如何根据索引、列名和单元格本身为每个单元格运行一个函数?
问题描述
我有一个像这样的DataFrame:
Name GoogleMinutes FacebookMinutes
Alice 10 2
Bob 15 3
Chuck 40 10
我想为每个单元格运行一个带有签名的函数func(cell_value,name,site_minutes)
。
换句话说。我想为每个索引、列名和值运行一个函数。
我该怎么做?我尝试申请并没有工作。
编辑:
应用的非工作示例:
p = PersonDataProvider()
s = SMDataProvider()
df.apply(lambda x: p.get_wealthness(x.index) * s.get_ticket(x.column) * x)
编辑2:一个重要的免责声明是我有一个未知数量的列,尽管没有在示例中显示。
解决方案
你能检查一下这是否适合你:
import pandas as pd
def main():
df = pd.DataFrame(
{'Name': ['Alice', 'Bob', 'Chuck', 'pete'], 'GoogleMinutes': [10, 15, 40, 4], 'FacebookMinutes': [2, 3, 10, 7]})
for a in range(df.shape[0]):
cell_value = a
name = df['Name'][a]
site_minutes = (df['GoogleMinutes'][a], df['FacebookMinutes'][a])
func1(cell_value, name, site_minutes)
def func1(cell_value, name, site_minutes):
print(cell_value, name, site_minutes)
return None
if __name__ == '__main__':
main()
推荐阅读
- c - 用于检查结构(结构)的 Lex 程序
- flutter - 限制键盘事件,直到子小部件更新
- c++ - Curl with wxThreads blocks thread after a few iterations
- python-3.x - ValueError:无法将大小为 662250 的数组重塑为形状 (883,22,1000,1)
- angular - TranslocoLocale pipes injected into a service causes unit test errors
- node.js - Is there is a way for me to host my express api on the internet?
- ruby-on-rails - ActiveRecord #collection 方法不返回所有保存的集合
- php - 成功提交 PHP 后隐藏登录表单
- ansible - Ansible 从循环中拉出块设备 UUID,并用于挂载模块上的变量
- bash - 将文本文件中的键=值对与预期值进行比较