我试图从一些数组和一个矩阵构建一个数据框(我正在使用 Pandas 库)。
特别是,如果我有两个这样的数组:
A=[A,B,C]
B=[D,E,F]
Run Code Online (Sandbox Code Playgroud)
一个像这样的矩阵:
1 2 2
3 3 3
4 4 4
Run Code Online (Sandbox Code Playgroud)
我可以创建这样的数据集吗?
A B C
D 1 2 2
E 3 3 3
F 4 4 4
Run Code Online (Sandbox Code Playgroud)
也许是一个愚蠢的问题,但我对 Python 和 Pandas 很陌生。
我看到了这个:
https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.html
但仅指定“列”。
我应该读取行的矩阵行并粘贴到我的数据集中,但我认为 Pandas 存在一个更简单的解决方案。
我正在学习 Prolog,我看到了这段代码
foo([],[]).
foo([[A,_ ]|L], [A|P]) :-foo(L ,P).
Run Code Online (Sandbox Code Playgroud)
结果表明,此代码获取列表列表中的 N 个元素,如果我们给出以下查询,则举个例子:
?foo([[car],[house],[man]],X)
X= [c,h,m]
Run Code Online (Sandbox Code Playgroud)
初读时我发现有些不对劲。对我来说,这段代码采用列表列表的尾部和列表第一个元素的其余部分,所以对我来说,第一次扩展将是(跟踪)
foo([[house],[man]], ar)
foo([[man]], ouse)
foo([], an)
false.
Run Code Online (Sandbox Code Playgroud)
我尝试使用 swi-prolog 进行编译并给出以下跟踪:
[trace] ?- trace,foo([[car],[house],[man]],X).
Call: (9) foo([[car], [house], [man]], _1016) ? creep
Fail: (9) foo([[car], [house], [man]], _1016) ? creep
false.
Run Code Online (Sandbox Code Playgroud)
我有什么错吗?
我正在学习Prolog,特别是我专注于列表.
给定一个数n
,从返回号码列表0
来n
.
例如,给定2
输出将是[0,1,2]
这是我的代码:
num2list(0,[0]).
num2list(X,[H|T]) :-
H is X,
N is X-1,
num2list(N,T).
Run Code Online (Sandbox Code Playgroud)
输出num2list(2,X)
是X=[2,1,0].
也许解决方案是愚蠢的,但我找不到办法.我试图对我的代码进行一些修改,但我只是得到了错误.
这个程序是我的,我不想使用像"in"之类的标准谓词,因为我不知道,我想做一个纯粹的递归.
那么这是一个简单的方法呢?
我在书中看到这样做,我希望保持这种方式.