我有一个这样的数据框:
A B C
0 1 0.749065 This
1 2 0.301084 is
2 3 0.463468 a
3 4 0.643961 random
4 1 0.866521 string
5 2 0.120737 !
Calling
In [10]: print df.groupby("A")["B"].sum()
将返回
A
1 1.615586
2 0.421821
3 0.463468
4 0.643961
现在,我想对列“ C”执行“相同”操作。因为该列包含字符串,所以sum()不起作用(尽管您可能认为它将字符串连接在一起)。我真正想看到的是每个组的字符串列表或一组字符串,即
A
1 {This, string}
2 {is, !}
3 {a}
4 {random}
我一直在尝试找到方法来做到这一点。
尽管Series.unique()(http://pandas.pydata.org/pandas-docs/stable/genic/pandas.Series.unique.html)无效,但是
df.groupby("A")["B"]
是一个
pandas.core.groupby.SeriesGroupBy object
所以我希望任何Series方法都可以。有任何想法吗?
In [4]: df = read_csv(StringIO(data),sep='\s+')
In [5]: df
Out[5]:
A B C
0 1 0.749065 This
1 2 0.301084 is
2 3 0.463468 a
3 4 0.643961 random
4 1 0.866521 string
5 2 0.120737 !
In [6]: df.dtypes
Out[6]:
A int64
B float64
C object
dtype: object
应用自己的功能时,不会自动排除非数字列。这会慢一些,但比应用.sum()到groupby
In [8]: df.groupby('A').apply(lambda x: x.sum())
Out[8]:
A B C
A
1 2 1.615586 Thisstring
2 4 0.421821 is!
3 3 0.463468 a
4 4 0.643961 random
sum 默认情况下串联
In [9]: df.groupby('A')['C'].apply(lambda x: x.sum())
Out[9]:
A
1 Thisstring
2 is!
3 a
4 random
dtype: object
你几乎可以做你想做的
In [11]: df.groupby('A')['C'].apply(lambda x: "{%s}" % ', '.join(x))
Out[11]:
A
1 {This, string}
2 {is, !}
3 {a}
4 {random}
dtype: object
在整个框架上一次执行一次。关键是要返回一个Series
def f(x):
return Series(dict(A = x['A'].sum(),
B = x['B'].sum(),
C = "{%s}" % ', '.join(x['C'])))
In [14]: df.groupby('A').apply(f)
Out[14]:
A B C
A
1 2 1.615586 {This, string}
2 4 0.421821 {is, !}
3 3 0.463468 {a}
4 4 0.643961 {random}
问题内容: 我有一个这样的数据框: 呼唤 将返回 现在,我想对列“ C”执行“相同”操作。因为该列包含字符串,所以sum()不起作用(尽管您可能认为它将字符串连接在一起)。我真正想看到的是每个组的字符串列表或一组字符串,即 我一直在尝试找到方法来做到这一点。 尽管Series.unique()(http://pandas.pydata.org/pandas- docs/stable/genic/p
问题内容: 有没有一种方法可以在Python中对字符串进行子字符串化,以从第三个字符到字符串末尾获取新的字符串? 也许喜欢吗? 如果离开第二部分意味着“直到最后”,而如果离开第一部分,它是否从头开始? 问题答案: Python称这个概念为“切片”,它不仅适用于字符串,还适用于更多的领域。看看这里的一个全面的介绍。
如果我尝试实现一个自定义转换器(我在网上找到了一些例子),它会抱怨我没有实现抽象方法convert(F),而这些例子都没有实现。 谢了。
问题内容: 如何将(度)字符转换为字符串? 问题答案: 将此行放在源代码的顶部 如果您的编辑器使用其他编码,请替换为utf-8 然后,您可以直接在源代码中包含utf-8字符
问题内容: 在Python中,如何在不调用函数的情况下以字符串形式获取函数名称? 应该输出。 此类功能在Python中可用吗?如果没有,关于如何在Python中实现的任何想法? 问题答案: 使用是首选的方法,因为它可以统一应用。与不同func_name,它还可以用于内置函数: 同样,双下划线向读者表明这是一个特殊的属性。另外,类和模块也具有属性,因此你只记得一个特殊名称。
目前我正在开发一个新的外观和感觉,由于许多原因,我不得不从头开始,我现在最大的问题是在具有的组件中获取字符串的宽度和高度,以确定它应该在哪里绘制,我知道如何为普通文本获取它,但如果它呈现为html文本,该如何做??。 使用确实提供了纯文本所需的一切,但使用它来处理html时,它就像是纯文本一样,所以我尝试了并对视图对象图形的执行相同的操作,但仍然是相同的,而我想要的是绘制的文本的尺寸(差异很大,比