import pandas as pd
import numpy as np
datain = np.loadtxt(datafile)
df = pd.DataFrame(data = datain, columns = ["t","p","x","y","z"])
avg = df.groupby(["t"], sort=False)["p"].mean().rename(columns={1:"mean"})
Run Code Online (Sandbox Code Playgroud)
这不起作用,它告诉我 TypeError: rename() 得到了一个意外的关键字参数“columns”。如果我这样做,它也不起作用,
avg.rename(columns = {1:"mean"}, inplace=True)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么,所有文档都告诉我我的列调用是正确的。我只想将我的“mean”调用创建的空白列重命名为字符串索引。任何人都知道为什么或如何解决这个问题?我见过的所有例子都遵循这种格式。谢谢。
尝试使用 seaborn 和 matplotlib 绘制一些数据,需要在我的绘图中添加一些描述性文本,通常我只使用 matplotlib 命令文本,并将其放置在相对于轴的位置,但它似乎没有根本没有工作,除了轴、刻度等上的默认内容之外,我没有显示任何文本。我想要的是在绘图区域的左上角显示一些自定义文本。
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
Run Code Online (Sandbox Code Playgroud)
df 是我的 Pandas 数据框,它只包含一些时间列和带有作为标识符的标记“p”的坐标数据。
ax2 = sns.scatterplot("t","x", data = df, hue = "p")
ax2.text(0.1, 0.9, r"$s = {}, F = {}, N = {}$".format(value1, valu2, value3))
plt.show()
Run Code Online (Sandbox Code Playgroud)
任何人都知道我如何让一些文本显示,相对定位,“值”项只是我想要打印的数据的变量。谢谢。
我需要在 Python 2.7 中在没有换行符的情况下将文本打印到控制台,因此我可以在以后的代码中继续在同一行上编写更多文本。我当前的实现涉及从未来库中导入 Python 3 打印函数,并使用 end=''。
这并不理想,就像我打印一行一样,例如:
print("We're doing something...",end='')
Run Code Online (Sandbox Code Playgroud)
然后使用任何其他代码,然后是一行,例如:
print("we finished doing that thing.")
Run Code Online (Sandbox Code Playgroud)
该行被打印,但它是一次打印的,这意味着它被缓冲,直到它得到包含换行符的打印。我更希望能够将第一个打印字符串输出到控制台,执行其他代码,然后放入带有换行符的部分。我无论如何都找不到在 Python 2.7 中使用打印来执行此操作的方法。也许有人可以给我指出一种功能性的方法来做到这一点?谢谢。
对于那些建议环境缓冲修复它的人来说,它没有。它会影响文件输出和其他一些与它无关的杂项。下面有一个总体上是实用的答案。
我正在尝试从一个numpy数组中获取索引值,我尝试使用相交而不是徒劳。我只是想在2个数组中查找类似的值。一个是2D,我要选择一列,另一个是1D,仅是要搜索的值列表,因此实际上只有2个1D数组。
我们将此数组称为:
array([[ 1, 97553, 1],
[ 1, 97587, 1],
[ 1, 97612, 1],
[ 1, 97697, 1],
[ 1, 97826, 3],
[ 1, 97832, 1],
[ 1, 97839, 1],
[ 1, 97887, 1],
[ 1, 97944, 1],
[ 1, 97955, 2]])
Run Code Online (Sandbox Code Playgroud)
我们正在搜索说, values = numpy.array([97612, 97633, 97697, 97999, 97943, 97944])
所以我尝试:
numpy.where(a[:, 1] == values)
Run Code Online (Sandbox Code Playgroud)
而且我希望可以得到一堆值的索引,但是取而代之的是,我得到了一个空数组,它吐出了[(array([], dtype=int64),)]。
如果我尝试这样做:
numpy.where(a[:, 1] == 97697)
Run Code Online (Sandbox Code Playgroud)
它给了我回报(array([2]),),这就是我所期望的。
我在这里缺少数组的怪异之处吗?还是有可能更简单的方法来做到这一点?如我所料,查找数组索引和匹配数组似乎不起作用。当我想通过指数或唯一值找到数组的并集或相交时,它似乎无法正常工作。任何帮助都将是超级。谢谢。
编辑: 根据沃伦斯的要求:
import numpy
a = numpy.array([[ 1, 97553, 1],
[ …Run Code Online (Sandbox Code Playgroud)