首页 > 解决方案 > 如何根据索引、列名和单元格本身为每个单元格运行一个函数?

问题描述

我有一个像这样的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:一个重要的免责声明是我有一个未知数量的列,尽管没有在示例中显示。

标签: pythonpandas

解决方案


你能检查一下这是否适合你:

    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()

推荐阅读