小编Rak*_*sha的帖子

如何查找 DataFrame 列中所有唯一的数据类型?

例如:

df = pd.DataFrame([[int(1),2,3],[int(5),6,'a'],[0.1,4,True]], columns = list("abc"))
df
   a    b  c
0  1.0  2  3
1  5.0  6  a
2  0.1  4  True
Run Code Online (Sandbox Code Playgroud)

(附带问题:为什么声明没有int做任何事情?)

现在,df.dtypes返回

a    float64
b      int64
c     object
dtype: object
Run Code Online (Sandbox Code Playgroud)

但是是否有可能在一列中实际列出所有不同的数据类型?

喜欢

a    int64, float64
b    int64
c    int64, str, bool
Run Code Online (Sandbox Code Playgroud)

python types dataframe pandas

9
推荐指数
1
解决办法
6120
查看次数

如何将所有图例条目放在一行?

我似乎无法找到解决方案。我有一个自定义的图例(使用此处找到的解决方案),我试图将多个条目放在一行上,而不是将每个新条目放在前一个条目下。一个人怎么做?

red_patch = mpatches.Patch(color='red', label='The red data')
blue_patch = mpatches.Patch(color='blue', label='The blue data')
plt.legend(handles=[red_patch, blue_patch])
Run Code Online (Sandbox Code Playgroud)

我想将“(红色标记)红色数据,(蓝色标记)蓝色数据等......”全部放在顶部的一行中。当条目多于情节时,让它开始一个新行也很好。所以就像我猜的普通文本一样。

python matplotlib legend

8
推荐指数
1
解决办法
3480
查看次数

0xaa和0x55在做什么?

我尝试了谷歌搜索,但找不到任何可理解的@。@...。有人可以用外行的术语解释一下此代码中发生了什么吗?

这是“破解编码面试”一书中的一个问题。

“编写程序以用尽可能少的指令交换整数中的奇数和偶数位(例如,交换位0和位1,交换位2和3,依此类推)”。

我这样做的方式不涉及位操作,因为我无法弄清楚%\ ...

def swap(n):

    b = bin(n)[2:]
    print(b)
    if len(b)%2 != 0:
        c = True
        b = b[0] + b

    pairs = wrap(b, 2)
    pairs = [i[::-1] for i in pairs]
    ans = ''.join(pairs)

    if c: ans = ans[1:]
    print(ans)
Run Code Online (Sandbox Code Playgroud)

但是现在我正在看他们的答案,但我并没有真正理解它((不是因为它不在Python中):

int swapOddEvenBits(int x) {
  return ( ((x & 0xaaaaaaaa) >>> 1) | ((x & 0x55555555) << 1) );
Run Code Online (Sandbox Code Playgroud)

python java bit-manipulation operators

5
推荐指数
2
解决办法
5987
查看次数

有没有一种方法可以在VSCode中的新窗口中打开图形?

我正在用matplotlib绘制一些东西,我需要能够放大该图。但是VSCode只是在它无法执行的Python交互式窗口中呈现它。有没有一种方法可以在自己的窗口中打开允许缩放和事物的图形?

python plot graph matplotlib visual-studio-code

5
推荐指数
1
解决办法
649
查看次数

如何将一列时间戳转换为日期时间?

我有一个数据框,其中有一列日期表示为时间戳记(如[1554334020000, 1554334200000, 1554334380000, 1554334560000, 1554334740000])。如何将其转换为日期时间?

我知道您可以为一个值做

datetime(1970, 1, 1) + timedelta(milliseconds=int(data['Date'].values[0]))
Run Code Online (Sandbox Code Playgroud)

但是如何将其应用于整个专栏?

python datetime timestamp pandas

4
推荐指数
1
解决办法
277
查看次数

fusion_matrix 错误“DataFrame”“对象不可调用”

我究竟做错了什么?我将两个变量都设置为列表。也尝试过np.array

y = list(y_test.values)
yhat = list(predictions)

print(y)
print(yhat)

confusion_matrix = pd.DataFrame(confusion_matrix(y, yhat), columns=["Predicted False", "Predicted True"], index=["Actual False", "Actual True"])
display(confusion_matrix)
Run Code Online (Sandbox Code Playgroud)

出去:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ..., 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, ..., 0]
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-159-e1640f0e3b13> in <module>()
     45 print(yhat)
     46 
---> 47 confusion_matrix = pd.DataFrame(confusion_matrix(y, yhat), columns=["Predicted False", "Predicted True"], index=["Actual False", "Actual True"]) …
Run Code Online (Sandbox Code Playgroud)

python compiler-errors confusion-matrix

3
推荐指数
1
解决办法
3653
查看次数

有没有办法合并两个数据帧,只保留一定数量的出现次数?

例如.如果我有两个数据集:

df1 = pd.DataFrame([[1, 2.1, 5, 0, 'a'], [7, 2.3, 5, 1, 'b'], [0, 2, 0, 1, 'c'], [9, 4, 4, 1, 'd']],columns=list('ABCDE'))
df2 = pd.DataFrame([[3, 2, 5, 0, 1, 2], [3, 2.4, 5, 1, 9, 9], [9, 9, 5, 9, 4, 5], [0, 2, 5, 0, 1, 1], [1, 4, 4, 3, 8, 0]],columns=list('xBCyzw'))
Run Code Online (Sandbox Code Playgroud)

我想基于列'B'和'C'合并它们,但我只希望合并行的实例与df1中的实例一样多.

换句话说,我想在df2中找到基于'B'和'C'匹配df1中的行的行,并将df2中的列附加到df1.

我现在拥有的是

print(pd.merge(np.round(df2), np.round(df1), on=['B', 'C'], how='inner', left_index = True))
Run Code Online (Sandbox Code Playgroud)

哪个输出

   x    B  C  y  z  w  A  D  E
0  3  2.0  5 …
Run Code Online (Sandbox Code Playgroud)

python merge pandas

2
推荐指数
1
解决办法
81
查看次数

PyCharm 不会安装gym 包

我刚刚用pip安装了它,并想将其导入到PyCharm中,但出现错误:


解决环境:...正在工作...失败

PackagesNotFoundError:当前渠道无法提供以下软件包:

  • 健身房

目前渠道:

要搜索可能提供您正在寻找的 conda 包的替代频道,请导航至

https://anaconda.org
Run Code Online (Sandbox Code Playgroud)

并使用页面顶部的搜索栏。


有谁知道如何解决这个问题?

python module pip pycharm openai-gym

2
推荐指数
1
解决办法
6862
查看次数

有没有办法隐藏所有子图的轴?

我试图并排绘制两个图像,而没有任何像网格线和轴这样的垃圾。我发现您可以使用 关闭所有网格线plt.rcParams['axes.grid'] = False,但无法确定轴是否有类似的选项。我知道您可以使用,plt.axis('off')但是您必须单独为每个子图指定它。

plt.rcParams['axes.grid'] = False

plt.subplot(1, 2, 1)
plt.imshow(img1)
plt.subplot(1, 2, 2)
plt.imshow(img2)

plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

2
推荐指数
1
解决办法
1815
查看次数

从离散数据插值的曲线的切线

我想知道是否有办法从离散数据中找到曲线的切线。例如:

x = np.linespace(-100,100,100001)
y = sin(x)
Run Code Online (Sandbox Code Playgroud)

所以这里的 x 值是整数,但是如果我们想在类似的地方找到切线x = 67.875怎么办?

我一直试图弄清楚是否numpy.interp会起作用,但到目前为止没有运气。我还发现了几个类似的例子,比如这个,但还没有能够将这些技术应用于我的案例:(我是 Python 的新手,还不完全知道一切是如何工作的,所以任何帮助都会值得赞赏...

这就是我得到的: 在此处输入图片说明

from scipy import interpolate
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-100,100,10000)
y = np.sin(x)
tck, u = interpolate.splprep([y])

ti = np.linspace(-100,100,10000)
dydx = interpolate.splev(ti,tck,der=1)

plt.plot(x,y)
plt.plot(ti,dydx[0])
plt.show()
Run Code Online (Sandbox Code Playgroud)

python interpolation matplotlib

1
推荐指数
1
解决办法
2882
查看次数

当可能没有足够的值可以解压缩时,将列表值干净地分配给多个变量

例如,如果我要指派a, b, cl = [1,2,3,4,5],我可以做

a, b, c = l[:3]
Run Code Online (Sandbox Code Playgroud)

但是,如果l只有[1,2][1][])怎么办?

有没有一种方法可以自动将其余变量设置为None''0或其他某个默认值?

我考虑过在分配以匹配变量数量之前使用默认值扩展列表,但是只是想知道是否有更好的方法。

python list variable-assignment

1
推荐指数
1
解决办法
43
查看次数

为什么MatLab会破坏某些变量输入?

这是我的代码:

function test(n)
r = (0:1000)/n;
Phi = 2*pi*r;
[x,y] = pol2cart(Phi,r);
plot(x,y)
end
Run Code Online (Sandbox Code Playgroud)

这是n = 100,10,1的输出顺序: 在此输入图像描述

最后一张图表发生了什么?它为什么吓坏了?>.> ......

n = 1后更有趣的形状:这里n = 0.9,0.8,0.7,0.6

在此输入图像描述

error-handling matlab plot graph

0
推荐指数
1
解决办法
36
查看次数

FromDigits发生了什么?

我以为我知道FromDigits是如何工作的,但它现在正在做一些疯狂的事情.

n[[990;;]]
FromDigits[n[[990;;]]]
Run Code Online (Sandbox Code Playgroud)

输出:

{9, 50, 0, 50, 1, 50, 2, 50, 3, 50, 4, 50, 5, 50, 6, 50, 7, 50, 8, 50, 9}
1405060708091011121309
Run Code Online (Sandbox Code Playgroud)

而不是,你知道,950050150 ......

这是怎么回事?

wolfram-mathematica

-1
推荐指数
1
解决办法
118
查看次数