提问人:Aquiles Páez 提问时间:11/29/2017 更新时间:12/15/2022 访问量:2743
Python:如何在 Pandas 中使用或获取列标题并将其用作输入/值
Python: How to use or get the column header in Pandas and use it as input/value
问:
我有以下脚本,它使用 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 实现这一点?如果这些听起来令人困惑,我深表歉意。
答:
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
评论
def my_function(index, date): df.loc[index, date] = some_value
for col in df.columns: for row in df.iterrows(): print(row[0], col)