我是Python的完整noobie,我想使用networkx包研究数据集.我不明白这里有什么问题:
我有一个看起来像这样的csv(摘录):
['152027', '-6167']
['152027', '-4982']
['152027', '-3810']
['152027', '-2288']
['152027', '-1253']
['152100', '-152100']
['152100', '-86127']
Run Code Online (Sandbox Code Playgroud)
我们可以调用这个.csv文件nodes.数字继承人没有特别的意义.它们只是匿名的名称:所以152027是个人连接到个人-6167,个人-4982等.
我在Python中使用以下代码
import csv
import networkx as nx
file = csv.reader(open('nodes', 'rb'), delimiter=',')
G=nx.read_edgelist(file, delimiter=',',nodetype=float,encoding='utf-8')
G.number_of_nodes()
Run Code Online (Sandbox Code Playgroud)
我很难过,Out[71]: 0
我不明白这里有什么问题.请你帮助我好吗?
有没有一种简单的方法可以自动删除
\begin{tabular}{@{\extracolsep{5pt}}lc}
Run Code Online (Sandbox Code Playgroud)
和
\end{tabular}
Run Code Online (Sandbox Code Playgroud)
Stargazer LaTeX 输出的开头和结尾的行?
实际上,我只需要内部的 LaTeX 代码,而从 stargazer 生成的 TeX 文件中手动删除这些行完全是浪费时间......
我使用的是20GB(压缩)的.csv文件,我使用带有10 000 chuncksize参数的pandas pd.read_csv()从中加载了几列.
但是,这个参数是完全随意的,我想知道一个简单的公式是否可以给我更好的chunksize,这将加速数据的加载.
有任何想法吗?
我的Pandas数据集中有两个字符串列
name1 name2
John Doe John Doe
AleX T Franz K
Run Code Online (Sandbox Code Playgroud)
我需要检查是否name1等于name2.我现在使用的天真方式是使用简单的面具
mask=df.name1==df.name2
但问题是可能存在错误标记的字符串(以不可预测的方式 - 数据太大),以防止发生精确匹配.
例如"John Doe"和"John Doe"不匹配.当然,我修剪,低调的琴弦,但其他可能性仍然存在.
一个想法是看是否name1包含在name2.但似乎我不能使用str.contains另一个变量作为参数.还有其他想法吗?
非常感谢!
编辑:使用isin给出非感性的结果.例
test = pd.DataFrame({'A': ["john doe", " john doe", 'John'], 'B': [' john doe', 'eddie murphy', 'batman']})
test
Out[6]:
A B
0 john doe john doe
1 john doe eddie murphy
2 John batman
test['A'].isin(test['B'])
Out[7]:
0 False
1 True
2 False
Name: A, dtype: bool
Run Code Online (Sandbox Code Playgroud) 我有一个非常大的数据集,看起来像
df = pd.DataFrame({'B': ['john smith', 'john doe', 'adam smith', 'john doe', np.nan], 'C': ['indiana jones', 'duck mc duck', 'batman','duck mc duck',np.nan]})
df
Out[173]:
B C
0 john smith indiana jones
1 john doe duck mc duck
2 adam smith batman
3 john doe duck mc duck
4 NaN NaN
Run Code Online (Sandbox Code Playgroud)
我需要创建一个ID变量,这对于每个BC组合都是唯一的.也就是说,输出应该是
B C ID
0 john smith indiana jones 1
1 john doe duck mc duck 2
2 adam smith batman 3
3 john doe duck mc duck 2
4 …Run Code Online (Sandbox Code Playgroud) 我使用的dask是在如何使用适用于熊猫并行多(模糊)的字符串比较?
基本上我做一些计算(没有写任何东西到磁盘)调用Pandas和Fuzzywuzzy(可能不会释放GIL显然,如果这有帮助),我运行如下:
dmaster = dd.from_pandas(master, npartitions=4)
dmaster = dmaster.assign(my_value=dmaster.original.apply(lambda x: helper(x, slave), name='my_value'))
dmaster.compute(get=dask.multiprocessing.get)
Run Code Online (Sandbox Code Playgroud)
但是,代码的变体现在已经运行了10个小时,并且还没有结束.我在Windows任务管理器中注意到了
RAM utilization 非常低,对应于我的数据大小CPU usage 每2/3秒左右从0%反弹至最高5%20 Python processes的大小是100MB,一个Python进程可能包含30GB大小的数据(我有一个128 GB的机器和8核CPU)问题是:预期的行为是什么?我在dask这里设置一些选项显然是非常错误的吗?
当然,我明白细节取决于我到底在做什么,但也许上面的模式已经可以说出某些事情是非常错误的?
非常感谢!!
考虑以下数据框
df = pd.DataFrame({'name' : [['one two','three four'], ['one'],[], [],['one two'],['three']],
'col' : ['A','B','A','B','A','B']})
df.sort_values(by='col',inplace=True)
df
Out[62]:
col name
0 A [one two, three four]
2 A []
4 A [one two]
1 B [one]
3 B []
5 B [three]
Run Code Online (Sandbox Code Playgroud)
我想获得一列,以跟踪的name每个组合所包含的所有唯一字符串col。
也就是说,预期的输出是
df
Out[62]:
col name unique_list
0 A [one two, three four] [one two, three four]
2 A [] [one two, three four]
4 A [one two] [one two, three four]
1 B [one] …Run Code Online (Sandbox Code Playgroud) 考虑一下:
import pandas as pd
import numpy as np
idx2=[pd.to_datetime('2016-08-31 22:08:12.000'),
pd.to_datetime('2016-08-31 22:08:12.200'),
pd.to_datetime('2016-08-31 22:08:12.400')]
test=pd.DataFrame({'value':[1,1,3], 'groups' : ['A',np.NaN,'A']},index=idx2)
test
Out[27]:
groups value
2016-08-31 22:08:12.000 A 1
2016-08-31 22:08:12.200 NaN 1
2016-08-31 22:08:12.400 A 3
Run Code Online (Sandbox Code Playgroud)
我只需要在22:08:12.200和之间保留数据22:08:12.400,所以我很自然地使用between_time:
test.between_time('22:08:12.200','22:08:12.400')
Run Code Online (Sandbox Code Playgroud)
给
ValueError:无法将 arg ['22:08:12.200'] 转换为时间
这里有什么问题?如何dataframe根据毫秒信息根据时间切片?
我有一个/myfolder包含许多乳胶表的文件夹.
我需要他们每个人来替换字符,即更换任何minus标志-,通过en dash –.
只是可以肯定:我们更换hypens INSIDE所有文件夹中的文件TEX的.我不关心tex文件名.
手动执行此操作将是一场噩梦(文件太多,错误太多).有没有办法自动循环文件并进行替换?Python/R中的解决方案会很棒.
谢谢!
我正在寻找最简单的方法来创建一个只需要包含一个数据集的R包.
假设我的数据集(例如,dplyr数据帧)作为.rds(或存在于当前会话中)写入磁盘.有没有办法将其放入R包中而无需安装rtools和其他?这可以通过编程方式完成吗?
我的想法是每次运行其他代码时都会重新创建这个包.然后我可以将这个包数据集发送到其他程序.
再次感谢!