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

如何在数据表中透视包含字符串的列?[副本]

郦何平
2023-03-14

我试图通过将数据中的一列转换为行(通过旋转或展开)来重塑pandas dataframe。

df
    Location    Month       Metric       Value
0   Texas       January     Temperature  10
1   New York    January     Temperature  20
2   California  January     Temperature  30
3   Alaska      January     Temperature  40
4   Texas       January     Color        Red
5   New York    January     Color        Blue
6   California  January     Color        Green
7   Alaska      January     Color        Yellow
8   Texas       February    Temperature  15
9   New York    February    Temperature  25
10  California  February    Temperature  35
11  Alaska      February    Temperature  NaN
12  Texas       February    Color        NaN
13  New York    February    Color        Purple
14  California  February    Color        Orange
15  Alaska      February    Color        Brown
Location    Month     Temperature   Color
Texas       January   10            Red
New York    January   20            Blue
California  January   30            Green
Alaska      January   40            Yellow
Texas       February  15    
New York    February  25            Purple
California  February  35            Orange
Alaska      February                Brown
df.set_index(['Location','Month','Metric'], append=True, inplace=True)
df.unstack()

    Value
    Metric              Color   Temperature
    Location    Month       
0   Texas       January None    10
1   New York    January None    20
2   California  January None    30
3   Alaska      January None    40
4   Texas       January Red     None
5   New York    January Blue    None
6   California  January Green   None
7   Alaska      January Yellow  None

共有1个答案

堵存
2023-03-14

你所需要的关键解决方案。输出是你想要的语义-

Metric                Color Temperature
Location   Month                       
Alaska     February   Brown         NaN
           January   Yellow          40
California February  Orange          35
           January    Green          30
New York   February  Purple          25
           January     Blue          20
Texas      February     NaN          15
           January      Red          10

代码-

df_p = df.pivot_table(index=['Location', 'Month'], columns=['Metric'], values='Value', aggfunc=np.sum)
 类似资料:
  • 问题内容: 我有一个像这样的简单数据框: 我需要按日期进行调整: 一切正常。但是现在我需要对其进行透视,并获得一个非数字列: 当然,我会得到一个例外: 我想产生一些东西 有可能吗? 问题答案: 假设组合是唯一的,并且您的唯一目标是枢纽而不是合计,则可以使用(或任何其他不限于数值的函数): 如果这些假设不正确,则必须预先汇总数据。例如,对于最常见的值:

  • 此函数接收字符串文本,并返回一个包含字符串列表的列表,字符串文本中的每个句子都有一个列表。 句子由一个字符串“.”分隔, "?",或者“!”.我们忽略了其他标点分隔句子的可能性。所以‘X先生’会变成2句,‘不要’是两个字。 例如,文本是 函数返回: 最令人困惑的部分是如何使函数检测字符?以及如何使其成为每个句子中包含单词的列表。非常感谢。

  • 如何防止或捕捉用户输入int或数字的字符串? 前任。 然后如果我输入Dave Har1234,我想在输入上捕获该数字,然后返回。

  • 如何检查数组列表中的ID数组是否包含特定字符串?我确信这个问题可能在其他地方得到了回答,但我没有找到任何东西(可能是因为我没有搜索正确的问题)。 主要活动: 我尝试使用.contains方法,但不幸的是,它没有起作用:

  • 问题内容: 如何检查字符串中是否包含字符列表,例如“ ABCDEFGH”,如何检查字符串中是否有字符列表。 问题答案: 在Java中使用正则表达式检查在Java中使用 正则表达式 例如:

  • 问题内容: 我有一个看起来像这样的Pandas DataFrame: 而且我想提取仅包含那些行的DataFrame,其中包含的任何行。因此结果应如下所示: 最简单的方法是什么? 供测试用: 问题答案: IIUC重新创建您的df,然后使用with应该比