我有一个邻接矩阵存储为pandas.DataFrame
:
node_names = ['A', 'B', 'C']
a = pd.DataFrame([[1,2,3],[3,1,1],[4,0,2]],
index=node_names, columns=node_names)
a_numpy = a.as_matrix()
Run Code Online (Sandbox Code Playgroud)
我想igraph.Graph
从邻接矩阵pandas
或numpy
邻接矩阵创建一个.在理想的世界中,节点将按预期命名.
这可能吗?该教程似乎对此问题保持沉默.
我有一张excel表,看起来像这样:
Column1 Column2 Column3
0 23 1
1 5 2
1 2 3
1 19 5
2 56 1
2 22 2
3 2 4
3 14 5
4 59 1
5 44 1
5 1 2
5 87 3
Run Code Online (Sandbox Code Playgroud)
我希望提取该数据,将其按第1列分组,然后将其添加到字典中,使其显示如下:
{0: [1],
1: [2,3,5],
2: [1,2],
3: [4,5],
4: [1],
5: [1,2,3]}
Run Code Online (Sandbox Code Playgroud)
到目前为止这是我的代码
excel = pandas.read_excel(r"e:\test_data.xlsx", sheetname='mySheet', parse_cols'A,C')
myTable = excel.groupby("Column1").groups
print myTable
Run Code Online (Sandbox Code Playgroud)
但是,我的输出看起来像这样:
{0: [0L], 1: [1L, 2L, 3L], 2: [4L, 5L], 3: [6L, 7L], 4: [8L], 5: …
Run Code Online (Sandbox Code Playgroud) 根据Mongoose文档,您可以使用默认端口27017连接到MongoDB.
我的mongod
输出结束于:
I NETWORK [initandlisten] waiting for connections on port 27017
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试连接到我的数据库时,如下所示:
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myapp');
Run Code Online (Sandbox Code Playgroud)
我明白了
Unhandled rejection MongoError: port must be specified
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
我有Mongoose v5.2.0,节点v9.10.0和MongoDB shell版本v4.0.0.
如果我更改我的连接字符串以包含端口,mongodb://localhost:27017/myapp
那么我能够连接.但我不确定为什么我需要这个.
我正在寻找一种方法来复制Stata中的编码行为,它将分类字符串列转换为数字列.
x = pd.DataFrame({'cat':['A','A','B'], 'val':[10,20,30]})
x = x.set_index('cat')
Run Code Online (Sandbox Code Playgroud)
结果如下:
val
cat
A 10
A 20
B 30
Run Code Online (Sandbox Code Playgroud)
我想将cat列从字符串转换为整数,将每个唯一字符串映射到(任意)整数1对1.这将导致:
val
cat
1 10
1 20
2 30
Run Code Online (Sandbox Code Playgroud)
或者,同样好:
cat val
0 1 10
1 1 20
2 2 30
Run Code Online (Sandbox Code Playgroud)
有什么建议?
非常感谢Rob
我完全迷失了为什么这不起作用.应该准确地工作吧?
UserName = input("Please enter your name: ")
print ("Hello Mr. " + UserName)
raw_input("<Press Enter to quit.>")
Run Code Online (Sandbox Code Playgroud)
我得到这个例外:
Traceback (most recent call last):
File "Test1.py", line 1, in <module>
UserName = input("Please enter your name: ")
File "<string>", line 1, in <module>
NameError: name 'k' is not defined
Run Code Online (Sandbox Code Playgroud)
它说NameError 'k'
,因为我'k'
在测试期间写了输入.我已经读过print语句曾经没有括号但是已被弃用了吗?
我尝试使用matplotlib绘制频率直方图,但它不起作用,我不知道问题在哪里...
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np
data = np.array([58.35, 71.83, 49.25, 38.89, 12.6, 58.34, 34.5, 11.6, 64.66, \
89.14, 101.84, 26.91, 38.74, 65.03, 35.23, 70.73, 54.52, 73.36, 74.35, \
60.54, 73.52, 24.58, 50.31, 55.63, 14.6, 53.64, 81.6])
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
n, bins, patches=ax.hist(data, 10, facecolor='green', alpha=0.75)
ax.yaxis.set_major_formatter(ticker.FuncFormatter(lambda y, pos: ('%.2f')%(y*1e-3)))
ax.set_ylabel('Frequency (000s)')
plt.show()
Run Code Online (Sandbox Code Playgroud)
错误消息的一部分:
sh: 1: dvipng: not found
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", …
Run Code Online (Sandbox Code Playgroud) 我有一个任务需要对列表的每个元素进行操作,操作的结果取决于列表中的其他元素.
例如,我可能希望以特定字符开头连接条件列表:
此代码解决了以下问题:
x = ['*a', 'b', 'c', '*d', 'e', '*f', '*g']
concat = []
for element in x:
if element.startswith('*'):
concat.append(element)
else:
concat[len(concat) - 1] += element
Run Code Online (Sandbox Code Playgroud)
导致:
concat
Out[16]: ['*abc', '*de', '*f', '*g']
Run Code Online (Sandbox Code Playgroud)
但这似乎非常恐怖.list
当操作结果取决于先前的结果时,如何对a的元素进行操作?
当我使用Pydantic 文档中的这样的代码片段时,我的类型检查器会对我抱怨:
from datetime import datetime
from pydantic import BaseModel, validator
class DemoModel(BaseModel):
ts: datetime = None # Expression of type "None" cannot be
# assigned to declared type "datetime"
@validator('ts', pre=True, always=True)
def set_ts_now(cls, v):
return v or datetime.now()
Run Code Online (Sandbox Code Playgroud)
到目前为止我的解决方法是:
ts: datetime = datetime(1970, 1, 1) # yuck
Run Code Online (Sandbox Code Playgroud)
ts: datetime = None # type: ignore
Run Code Online (Sandbox Code Playgroud)
ts: Optional[datetime] = None # Not really true. `ts` is not optional.
Run Code Online (Sandbox Code Playgroud)
是否有解决这个难题的首选方法?
或者是否有我可以使用的类型检查器不介意这一点?
我正在使用MultiIndexed pandas DataFrame,并希望将DataFrame的子集乘以一定数量.
它与此相同,但具有MultiIndex.
>>> d = pd.DataFrame({'year':[2008,2008,2008,2008,2009,2009,2009,2009],
'flavour':['strawberry','strawberry','banana','banana',
'strawberry','strawberry','banana','banana'],
'day':['sat','sun','sat','sun','sat','sun','sat','sun'],
'sales':[10,12,22,23,11,13,23,24]})
>>> d = d.set_index(['year','flavour','day'])
>>> d
sales
year flavour day
2008 strawberry sat 10
sun 12
banana sat 22
sun 23
2009 strawberry sat 11
sun 13
banana sat 23
sun 24
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但是,让我说我发现星期六的数字只是他们应该的一半!我想将所有sat
销售额乘以2.
我的第一次尝试是:
sat = d.xs('sat', level='day')
sat = sat * 2
d.update(sat)
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为变量sat
已经失去day
了索引的级别:
>>> sat
sales
year flavour
2008 strawberry 20
banana 44
2009 strawberry 22
banana 46 …
Run Code Online (Sandbox Code Playgroud) 我想将CSV列表读入数据帧.但是,我在捕获文件具有与数据本身不匹配的标题行(即元数据或其他空行)时发生的错误时遇到问题.此错误是'CParserError'(请参阅底部的错误消息).
我目前的解决方案是使用try-except语句
try:
#read file
except CParserError:
#give me an error message
Run Code Online (Sandbox Code Playgroud)
但是,这失败并出现以下错误:
NameError: name 'CParserError' is not defined
Run Code Online (Sandbox Code Playgroud)
我的代码如下.正如您所看到的,我认为我需要多个except语句来捕获各种错误.第一个应检查默认编码类型是否有效(文件永远不会是utf-8或latin-1以外的任何文件).如果有标题行,pd.read_csv会给出一个'CParserError'消息(见下文),我需要捕获它.然后,如果还有其他杂项问题,我也想抓住这些问题.
任何解决方案都欢迎,理想情况下可以解释为什么CParserError不正确,或者是否可以修改try-except逻辑以避免依赖于此.
谢谢.
files_list = glob.glob('*.csv*') #get all csvs
files_dict = {}
for file in files_list:
try:
files_dict[file] = pd.read_csv('DFA_me_week27.csv', encoding='utf-8').read()
except UnicodeDecodeError:
files_dict[file] = pd.read_csv('DFA_me_week27.csv', encoding='Latin-1').read()
except CParserError:
print(file, 'failed: check for header rows')
except:
print(file, 'failed: some other error occurred')
Run Code Online (Sandbox Code Playgroud)
尝试使用标头解析CSV文件时出现错误消息:
CParserError Traceback (most recent call last)
<ipython-input-15-e454c053d675> in <module>()
----> 1 pd.read_csv('DFA_me_week27.csv')
C:\Users\john.lwli\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, dialect, compression, …
Run Code Online (Sandbox Code Playgroud)