Python:如何在 Pandas 中使用或获取列标题并将其用作输入/值

Python: How to use or get the column header in Pandas and use it as input/value

提问人:Aquiles Páez 提问时间:11/29/2017 更新时间:12/15/2022 访问量:2743

问:

我有以下脚本,它使用 Pandas 生成一个空的 DataFrame:

import pandas as pd
import datetime

#Creating a list of row headers with dates.
start=datetime.date(2017,3,27)
end=datetime.date.today() - datetime.timedelta(days=1)
row_dates=[x.strftime('%m/%d/%Y') for x in pd.bdate_range(start,end).tolist()]
identifiers=['A','B','C']
#Creating an empty Dataframe
df=pd.DataFrame(index=identifiers, columns=row_dates)

print(df)

现在,假设我有一个函数(我们称之为“my_function(index,date)”),它需要两个输入:索引和日期。

该函数为我提供了一个结果,我想用该结果填充数据帧的相应空槽。但为此,我需要能够同时获取索引和日期。

例如,假设我想填充 DataFrame 的第一个插槽,我需要索引“A”和第一个日期,即“27/3/2017”,所以我有这个:

my_function('A', '27/3/2017')

我怎样才能使我的整个 DataFrame 实现这一点?如果这些听起来令人困惑,我深表歉意。

Python 函数 Pandas DataFrame 数据操作

评论

0赞 Evan 11/29/2017
您可以使用 .loc 索引吗?def my_function(index, date): df.loc[index, date] = some_value
0赞 Aquiles Páez 11/29/2017
函数已经定义好了,我所关心的只是如何使用相应行和标题名称中的相应索引和日期值。
1赞 Evan 11/29/2017
您是否在问如何遍历数据帧中的每个单元格,并将函数应用于每个单元格?
0赞 Evan 11/29/2017
像这样的东西?for col in df.columns: for row in df.iterrows(): print(row[0], col)

答:

0赞 Evan 11/29/2017 #1

添加到代码末尾:

for col in df.columns:
    for row in df.iterrows():
        print(row[0], col)

这将打印(返回)一个元组,该元组由索引(日期)和列名组成。可能有一种更快的方法可以做到这一点。

如果只想将函数应用于 df 中的每个单元格,则可以根据需要使用 .apply、.map 或 .applymap。https://chrisalbon.com/python/pandas_apply_operations_to_dataframes.html