如何通过在pandas datafram上应用函数来获取/返回单个字典

2024-10-05 10:56:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

state  city     alt_city
FL  FT. PIERCE  FORT PIERCE
FL  FT. PIERCE  FORTPIERCE
FL  FT. PIERCE  FT.PIERCE
FL  FORT PIERCE FORTPIERCE
FL  FORT PIERCE FT PIERCE
FL  FORT PIERCE FT. PIERCE
FL  FORT PIERCE FT.PIERCE
FL  FORT PIERCE FTPIERCE
AK  ANCHORAGE   ANCH
AK  ANCHORAGE   ANCHORAGE

我想根据一定的条件从中生成一本词典:

以下是伪代码:

^{pr2}$

如果我使用以下代码在dataframe上应用它:

cs_d = {}
cs_dict = df.apply(lambda x: map_df_to_dict(cs_d,x['state'],x['city'],x['alt_city']), axis=1)

然后它将为dataframe中的每一行返回dictionary。在

但是我怎样才能在一个数据帧上应用它,这样它就不会返回奇怪的结果呢。在


Tags: 数据代码citydataframecsaltdictak
2条回答

在数据帧应用为每行(或列)运行函数。 这就是为什么你会得到多个口述。在

https://pandas.pydata.org/pandas-docs/version/0.22/generated/pandas.DataFrame.apply.html

DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)

沿数据帧的输入轴应用函数。在

传递给函数的对象是具有数据帧索引(轴=0)或列(轴=1)的序列对象。在

参数:函数:应用于每列/行的函数

您可以通过在函数范围之外声明字典“全局”来获取单个字典。考虑下面的伪代码,将pandas系列中的每个数字加2。在

test_a = pd.Series([1,2,3])
global_dict = {}

def add_2(x):
    global_dict[x] = (x+2)

将此函数应用于测试_a时,得到以下结果:

^{pr2}$

global_dict={1:3,2:4,3:5}

希望这有帮助。在

相关问题 更多 >

    热门问题