我运行Python 2.7与Pandas 0.11.0安装的库.
我一直在寻找一个没有找到这个问题的答案,所以我希望有人比我有解决方案更有经验.
让我们说我的数据,在df1中,如下所示:
df1=
zip x y access
123 1 1 4
123 1 1 6
133 1 2 3
145 2 2 3
167 3 1 1
167 3 1 2
Run Code Online (Sandbox Code Playgroud)
例如,使用df2 = df1[df1['zip'] == 123]然后df2 = df2.join(df1[df1['zip'] == 133])我得到以下数据子集:
df2=
zip x y access
123 1 1 4
123 1 1 6
133 1 2 3
Run Code Online (Sandbox Code Playgroud)
我想做的是:
1)从df1定义/连接时删除行df2
要么
2)df2创建完成后,删除df1由其df2 …
我在Mac OSX Lion上使用pandas 0.11.0(数据处理)进行逻辑回归并statsmodels 0.4.3进行实际回归.
我将运行~2,900种不同的逻辑回归模型,需要将结果输出到csv文件并以特定方式格式化.
目前,我只知道做了print result.summary()哪些打印结果(如下)到shell:
Logit Regression Results
==============================================================================
Dep. Variable: death_death No. Observations: 9752
Model: Logit Df Residuals: 9747
Method: MLE Df Model: 4
Date: Wed, 22 May 2013 Pseudo R-squ.: -0.02672
Time: 22:15:05 Log-Likelihood: -5806.9
converged: True LL-Null: -5655.8
LLR p-value: 1.000
===============================================================================
coef std err z P>|z| [95.0% Conf. Int.]
-------------------------------------------------------------------------------
age_age5064 -0.1999 0.055 -3.619 0.000 -0.308 -0.092
age_age6574 -0.2553 0.053 -4.847 0.000 -0.359 -0.152
sex_female -0.2515 0.044 …Run Code Online (Sandbox Code Playgroud) 为了进一步详细说明这个问题的标题:我正在从电影网站上删除信息.我目前有一个MySQL填充了movie titles,movie urls等等的数据库.我现在urls要从数据库中取出它们并将它们设置为我start_urls的新数据库spider.每个url都是[插入abritrary电影]网页的链接,传达更多信息.我感兴趣的信息是:
其中,发行人,评级,导演和流派将从每个电影网页(一个评级,一个导演等)中与他们相关联.当然会有多个演员,并且取决于多个制片人(大片电影/大多数电影).这是我遇到问题的地方.我想建立一个pipeline' which puts each piece of info in an appropriate表within myMySQL database. So, a table for director, a table for rating, etc. Each table will also have电影标题`.我可以这样说明问题本身:
我无法协调如何pipeline用适当的方法构建一个合适的spider.我不确定我是否可以从一个蜘蛛返回多个东西并将它们发送到不同的pipelines(创建不同的项来处理single属性,以及一个不同的项来处理'多个'属性)或是否使用相同的管道并以某种方式指定什么去哪里(不确定我是否只能在刮痧后返回一件事).我将展示我的代码,希望问题会变得更加清晰.*注意:它还没有完成 - 我只是想填写如何做到这一点的空白
蜘蛛:
class ActorSpider(BaseSpider):
import sys; sys.path.append("/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages")
import MySQLdb
db = MySQLdb.connect(db = 'testdb', user='testuser', …Run Code Online (Sandbox Code Playgroud) 我使用Wing IDE在Mac上开发了一些代码.我开发的代码,它使用csv模块,正在工作,并在我的Mac上做我想要的.但问题是,我编写它的人需要在Windows上使用它.我并不关心代码,因为我没有使用任何转义字符.
代码如下所示:
csvfile = open('file.csv', 'r')
csvreader = csv.reader(csvfile, delimiter = ',')
for row in csvreader:
thisVariable = row[0] # <<<--------
Run Code Online (Sandbox Code Playgroud)
我在上面输入的'箭头'是在Windows机器上返回错误的地方.就像我说的那样,代码在Mac上运行良好,实际上,这在我编写的代码中相当远.在此语句上方读取和写入的其他CSV文件使用类似的索引.
我真的很感激任何人对此问题的看法!谢谢!
我在Mac OSX Lion上使用Python 2.7,在IPython shell上使用Pandas 0.11.0.
我有一个简短的问题,使用数据选择方法.isin.
问题是我想.isin在项目列表中使用,所以:
data = df[df[header[0]].isin(list)]
Run Code Online (Sandbox Code Playgroud)
我这样做时收到以下错误: KeyError: u'no item named '
我通过调用以前开发的函数生成初始列表.我尝试使用eval列表中,这似乎解决涉及使用时的一个问题上raw_input并遍历其内部的物品-有点儿试图找出一些过渡到时候我一直有问题IPython,并Python 2.7(最初使用Python 3.3).
我也尝试迭代列表,首先做:
data = df[df[header[0]].isin(list[0])]
Run Code Online (Sandbox Code Playgroud)
但这也会回归: KeyError: u'no item named '
更新:这是标题:
Unnamed: 0 9752 non-null values
zipcode 9752 non-null values
xcoord 9752 non-null values
ycoord 9752 non-null values
age_age5064 9752 non-null values
age_age6574 9752 non-null values
age_age75plus 9752 non-null values
sex_female 9752 non-null values
sex_male 9752 …Run Code Online (Sandbox Code Playgroud) 在Mac OSX Lion上使用Python 2.7 xlrd
我的问题相对简单明了.我正在尝试将字符串与excel单元格值匹配,以确保与该值匹配的行中的其他数据是正确的值.
所以,比如说player = 'Andrea Bargnani',我希望匹配一个看起来像这样的行:
Draft Player Team
1 Andrea Bargnani - Toronto Raptors
Run Code Online (Sandbox Code Playgroud)
我做:
num_rows = draftSheet.nrows - 1
cur_row = -1
while cur_row < num_rows:
cur_row += 1
row = draftSheet.row(cur_row)
if row[1] == player:
ranking == row[0]
Run Code Online (Sandbox Code Playgroud)
问题是,价值row[1]是text:u'Andrea Bargnani,而不仅仅是Andrea Bargnani.
我知道Excel 97之后的Excel都是unicode.但即使我这样做player = u'Andrea Bargnani',仍然有前面的text:.所以我试过了player = 'text:'u'Andrea Bargnani',但是当变量被调用时,它最终看起来像u'text: Andrea Bargnani仍然没有产生匹配.
我想删除test: u'返回的row[1]值以获得适当的匹配.
我在使用mysql-python已建立的数据库上运行select查询时遇到问题.问题是返回一个数字,即所谓的Pythona long,而不是查询的数据 - 应该注意这个数字对应于应该返回的记录数量(我登录到数据库并运行查询MySQL到确保).
这是代码:
db = MySQLdb.connect(db = 'testdb', user='testuser', passwd='test', host='localhost', charset='utf8', use_unicode=True)
dbc = db.cursor()
result = dbc.execute("""SELECT %s FROM example_movie""", ('title',))
urls = [row[0] for row in result]
Run Code Online (Sandbox Code Playgroud)
最后一点代码urls = [row[0] for row in result]是将所有内容放入列表中.
错误如下所示:
TypeError: 'long' object is not iterable
Run Code Online (Sandbox Code Playgroud)
当我有python print result它返回:
('RESULT:', 52L)
Run Code Online (Sandbox Code Playgroud)
当我附上result喜欢str(result)它只是返回的数量52(不long)
非常感谢任何帮助和建议!
在Mac OSX Lion上使用:Python 2.7和Pandas 0.11.0
我正在尝试创建一个空DataFrame,然后根据a从另一个数据框填充它for loop.
我发现当我构造DataFrame然后使用for loop如下:
data = pd.DataFrame()
for item in cols_to_keep:
if item not in dummies:
data = data.join(df[item])
Run Code Online (Sandbox Code Playgroud)
结果为空DataFrame,但要从另一个添加相应列的标题DataFrame.