所以我试图理解pandas.dataFrame.groupby()函数,我在文档中遇到了这个例子:
In [1]: df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
...: 'foo', 'bar', 'foo', 'foo'],
...: 'B' : ['one', 'one', 'two', 'three',
...: 'two', 'two', 'one', 'three'],
...: 'C' : np.random.randn(8),
...: 'D' : np.random.randn(8)})
...:
In [2]: df
Out[2]:
A B C D
0 foo one 0.469112 -0.861849
1 bar one -0.282863 -2.104569
2 foo two -1.509059 -0.494929
3 bar three -1.135632 1.071804
4 foo two 1.212112 0.721555
5 bar two -0.173215 -0.706771
6 foo one 0.119209 -1.039575 …Run Code Online (Sandbox Code Playgroud) 我的DataFrame包含两列名为"a","b"的列.现在,当我创建此DataFrame的csv文件时:
df.to_csv( 'myData.csv')
当我在一个excel文件中打开它时,有一个额外的列,索引出现在列'a'和'b'旁边,但我不希望这样.我只希望列'a'和'b'出现在Excel工作表中.
有没有办法做到这一点?
所以我试图解决这个编程问题.
给出一组数字和一些查询.每个查询都会给出三个数字a,b,c,并要求您回答索引a到索引b(包括两者)中小于或等于c的所有元素的总和.
例如:
给定阵列:{2,4,6,1,5,1,6,4,5,4}
将回答3个查询:
2 4 4 - > ans = 5即{4 + 1}
1 5 3 - > ans = 3即{2 + 1}
4 5 1 - > ans = 1
数组中的每个值小于10 ^ 5,数组的长度和查询的数量可以达到10 ^ 5
这就是我所做的我用Mo的算法(平方根分解)对查询进行排序,并创建了一个二进制索引树,用于存储元素的累积和小于1-10 ^ 5中的所有值,并进行了更新.对查询的查询.使用这种算法,我的解决方案的整体复杂性是O(q*sqrt(N)*log(N)),但速度不够快.我在寻找更好的算法.我认为查询的平方根分解是行不通的.有没有更好的算法来解决这个问题?
我想知道是否有一些数据结构可以解决我不知道的这个问题?
因此在测验中询问了这个问题,问题如下:
您将获得一个数组'a',其元素范围为1-10 6 ,数组大小可能最大为10 5现在我们要求找到与原始数组具有相同"degree"的子数组.数组的度数定义为数组中最大出现元素的频率.多个元素可以具有相同的频率.
我被困在这个问题上一个小时但却想不到任何解决方案.我该如何解决?
first-input
1,2,2,3,1
first-output 2
second-input
1,1,2,1,2,2
second-output 4
Run Code Online (Sandbox Code Playgroud) 就像multiset是STL中的二叉搜索树实现一样,是否有可用的RB树或AVL树实现?
我有一个numpy数组,我想返回true每一行的值计数。
例如我有一个numpy数组:
[[False False False ..., False False False]
[False False False ..., False False False]
[False False False ..., False True False]
...,
[False False False ..., False False False]
[ True False True ..., True True True]
[False False False ..., False False False]]
Run Code Online (Sandbox Code Playgroud)
返回值应类似于:
[10
15
8
...,
11
10
12]
Run Code Online (Sandbox Code Playgroud)
这个问题询问如何对整个数组执行操作,但是如何对每一行执行操作呢?
我有一个带有一些列的 Pandas Datarame,我首先想只打印特定列中值小于某个值的那些行。所以我做了:
df[df.marks < 4.5]
Run Code Online (Sandbox Code Playgroud)
它成功创建了数据框,现在我只想添加那些值在某个范围内的列,所以我尝试了这个:
df[(df.marks < 4.5 and df.marks > 4)]
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误:
712 raise ValueError("The truth value of a {0} is ambiguous. "
713 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
--> 714 .format(self.__class__.__name__))
715
716 __bool__ = __nonzero__
ValueError: The truth value of a Series is ambiguous. Use a.empty,
a.bool(), a.item(), a.any() or a.all().
Run Code Online (Sandbox Code Playgroud)
我该如何解决?最初我还认为它会遍历所有行并检查真值,然后在数据框中添加行,但似乎并非如此,如果是这样,它如何在数据框中添加行?