当前位置: 首页 > 知识库问答 >
问题:

熔融函数

红甫
2023-03-14

我有一个数据帧:

df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014]], columns=['Amy', 'Bob', 'Carl', 'Chris', 'Ben', 'Other', 'Year'])
   Amy  Bob  Carl  Chris  Ben  Other  Year
0    2    4     7      8    1      3  2013
1    9    2     4      5    5      6  2014

还有一本字典:

d = {'A': ['Amy'], 'B': ['Bob', 'Ben'], 'C': ['Carl', 'Chris']}

我想将我的数据框重新设计为如下所示:

    Group   Name  Year  Value
 0      A    Amy  2013      2
 1      A    Amy  2014      9
 2      B    Bob  2013      4
 3      B    Bob  2014      2
 4      B    Ben  2013      1
 5      B    Ben  2014      5
 6      C   Carl  2013      7
 7      C   Carl  2014      4
 8      C  Chris  2013      8
 9      C  Chris  2014      5
10  Other         2013      3
11  Other         2014      6

请注意,OtherName列中没有任何值,行的顺序无关紧要。我想我应该使用melt函数,但是我遇到的例子不太清楚。

共有2个答案

暴夕
2023-03-14

功能:-

此函数用于将数据帧转换为一个或多个列为标识符变量(id_vars)的格式,而所有其他列(被视为测量变量(value_vars))被“取消插入”到行轴,只留下两个非标识符列“variable”和“value”。

例如:-

melted = pd.melt(df, id_vars=["weekday"], 
             var_name="Person", value_name="Score")

我们使用熔体将宽数据转换为长数据。

周玺
2023-03-14

融化让你在那里分道扬镳。

In [29]: m = pd.melt(df, id_vars=['Year'], var_name='Name')

除了,这里什么都有。要做到这一点,我们还需要对d进行一点重塑。

In [30]: d2 = {}

In [31]: for k, v in d.items():
    for item in v:
        d2[item] = k
   ....:

In [32]: d2
Out[32]: {'Amy': 'A', 'Ben': 'B', 'Bob': 'B', 'Carl': 'C', 'Chris': 'C'}

In [34]: m['Group'] = m['Name'].map(d2)

In [35]: m
Out[35]:
    Year   Name  value Group
0   2013    Amy      2     A
1   2014    Amy      9     A
2   2013    Bob      4     B
3   2014    Bob      2     B
4   2013   Carl      7     C
..   ...    ...    ...   ...
7   2014  Chris      5     C
8   2013    Ben      1     B
9   2014    Ben      5     B
10  2013  Other      3   NaN
11  2014  Other      6   NaN

[12 rows x 4 columns]

以及将“其他”从名称移动到

In [8]: mask = m['Name'] == 'Other'

In [9]: m.loc[mask, 'Name'] = ''

In [10]: m.loc[mask, 'Group'] = 'Other'

In [11]: m
Out[11]:
    Year   Name  value  Group
0   2013    Amy      2      A
1   2014    Amy      9      A
2   2013    Bob      4      B
3   2014    Bob      2      B
4   2013   Carl      7      C
..   ...    ...    ...    ...
7   2014  Chris      5      C
8   2013    Ben      1      B
9   2014    Ben      5      B
10  2013             3  Other
11  2014             6  Other

[12 rows x 4 columns]
 类似资料:
  • 微服务里熔断是绝不可少的,而C#里最有名的就是Polly里,Uragano默认就采用了Polly。 启用熔断及全局策略配置 service.AddUragano(context.Configuration, builder => { builder.AddServer();

  • 熔断架构概述。 优先级路由架构概述。 可以为每个优先级的定义单独指定熔断设置。关于不同优先级如何使用,详见[配置指南]章节。 { "default": "{...}", "high": "{...}" } default (optional, object) 设置默认优先级的配置对象。 high (optional, object) 设置高优先级的配置对象。 优先级设置 { "max

  • 熔断架构概述 v1 API 文档 v2 API 文档 运行时配置 所有的断路设置都可以根据集群名称定义所有运行时配置。他们遵循以下命名规则circuit_breakers.<cluster_name>.<priority>.<setting>,其中cluster_name表示每个集群的名称,可以在Envoy配置文件中进行设置。也可用的运行时配置覆盖Envoy配置文件中设置的值。 返回 上一级

  • 熔断是分布式系统的重要组成部分。快速失败并尽快给下游施加压力,几乎总是好的。这是Envoy网格的主要优点之一,Envoy在网络级别实现强制断路限制,而不必独立配置和编写每个应用程序。Envoy支持各种类型的完全分布(不协调)的熔断: 群集最大连接数:Envoy将为上游群集中的所有主机建立的最大连接数。实际上,这仅适用于HTTP/1.1群集,因为HTTP/2使用到每个主机的单个连接。 群集最大挂起请

  • 我在对应用reduce操作时遇到了一些问题,我想将其简化为。每个AdProvider提供的优惠作为流量,我想使用流来获得所有优惠从每一个他们和连接到一个管道。我怎么可能用Reduce做到这一点?

  • 概述 除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的时候,可能需要远程调用银联提供的 API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服务的稳定性是不能保证的。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也