我从这里的pandas DataFrame文档开始:http://pandas.pydata.org/pandas-docs/stable/dsintro.html
我想迭代地使用时间序列计算中的值填充DataFrame.基本上,我想用列A,B和时间戳行初始化DataFrame,全部为0或全部为NaN.
然后,我会添加初始值并检查此数据,计算前一行中的新行,row[A][t] = row[A][t-1]+1或者说左右.
我目前正在使用下面的代码,但我觉得它有点难看,必须有一种方法可以直接使用DataFrame,或者只是更好的方式.注意:我使用的是Python 2.7.
import datetime as dt
import pandas as pd
import scipy as s
if __name__ == '__main__':
base = dt.datetime.today().date()
dates = [ base - dt.timedelta(days=x) for x in range(0,10) ]
dates.sort()
valdict = {}
symbols = ['A','B', 'C']
for symb in symbols:
valdict[symb] = pd.Series( s.zeros( len(dates)), dates )
for thedate in dates:
if thedate > dates[0]:
for symb in valdict:
valdict[symb][thedate] = 1+valdict[symb][thedate - dt.timedelta(days=1)]
print valdict
Run Code Online (Sandbox Code Playgroud) LEFT| RIGHT| FULL)(INNER| OUTER)连接?merge?join?concat?update?谁?什么?为什么?!... 和更多.我已经看到了这些反复出现的问题,询问了pandas合并功能的各个方面.今天关于合并及其各种用例的大部分信息在几十个措辞严厉,不可搜索的帖子中都是分散的.这里的目的是为后代整理一些更重要的观点.
这个QnA应该是关于常见熊猫习语的一系列有用的用户指南的下一部分(参见关于转动的这篇文章,以及关于连接的这篇文章,我将在稍后介绍).
请注意,这篇文章并不是文档的替代品,所以请阅读它!一些例子来自那里.
我想要做的是沿着纬度和经度坐标指定的路径从谷歌地图API中提取高程数据,如下所示:
from urllib2 import Request, urlopen
import json
path1 = '42.974049,-81.205203|42.974298,-81.195755'
request=Request('http://maps.googleapis.com/maps/api/elevation/json?locations='+path1+'&sensor=false')
response = urlopen(request)
elevations = response.read()
Run Code Online (Sandbox Code Playgroud)
这给了我一个如下所示的数据:
elevations.splitlines()
['{',
' "results" : [',
' {',
' "elevation" : 243.3462677001953,',
' "location" : {',
' "lat" : 42.974049,',
' "lng" : -81.205203',
' },',
' "resolution" : 19.08790397644043',
' },',
' {',
' "elevation" : 244.1318664550781,',
' "location" : {',
' "lat" : 42.974298,',
' "lng" : -81.19575500000001',
' },',
' "resolution" : 19.08790397644043',
' }',
' ],',
' …Run Code Online (Sandbox Code Playgroud) 假设我有一个带结构的嵌套字典'user_dict':
第1级: UserId(长整数)
第2级:类别(字符串)
第3级:各种属性(浮点数,整数等)
例如,这个字典的条目是:
user_dict[12] = {
"Category 1": {"att_1": 1,
"att_2": "whatever"},
"Category 2": {"att_1": 23,
"att_2": "another"}}
Run Code Online (Sandbox Code Playgroud)
"user_dict"中的每个项目具有相同的结构,"user_dict"包含大量项目,我想将这些项目提供给pandas DataFrame,从属性构建系列.在这种情况下,分层索引对于此目的是有用的.
具体来说,我的问题是,是否存在一种方法来帮助DataFrame构造函数理解该系列应该是从字典中"级别3"的值构建的?
如果我尝试类似的东西:
df = pandas.DataFrame(users_summary)
Run Code Online (Sandbox Code Playgroud)
"级别1"(用户ID)中的项目被视为列,这与我想要实现的目标相反(将用户ID作为索引).
我知道我可以在迭代字典条目后构建系列,但如果有更直接的方法,这将非常有用.类似的问题是询问是否可以从文件中列出的json对象构造pandas DataFrame.
我有以下for循环:
for i in links:
data = urllib2.urlopen(str(i)).read()
data = json.loads(data)
data = pd.DataFrame(data.items())
data = data.transpose()
data.columns = data.iloc[0]
data = data.drop(data.index[[0]])
Run Code Online (Sandbox Code Playgroud)
如此创建的每个数据框都有大多数列与其他列相同但不是全部.而且,他们都只有一排.我需要的是向数据帧中添加for循环生成的每个数据帧中的所有不同列和每一行
我尝试过连接或类似的熊猫,但似乎没有任何效果.任何的想法?谢谢.
我是pandas的新手,这是我在stackoverflow上的第一个问题,我正在尝试用熊猫做一些分析.
我有一些文本文件包含我想要处理的数据记录.文件的每一行与记录匹配,哪些字段在固定的位置并且具有固定数量的字符的长度.同一文件中有不同种类的记录,所有记录共享第一个字段,这两个字符取决于记录类型.举个例子:
Some file:
01Jhon Smith 555-1234
03Cow Bos primigenius taurus 00401
01Jannette Jhonson 00100000000
...
field start length
type 1 2 *common to all records, example: 01 = person, 03 = animal
name 3 10
surname 13 10
phone 23 8
credit 31 11
fill of spaces
Run Code Online (Sandbox Code Playgroud)
我正在编写一些代码来将一条记录转换为字典:
person1 = {'type': 01, 'name': = 'Jhon', 'surname': = 'Smith', 'phone': '555-1234'}
person2 = {'type': 01, 'name': 'Jannette', 'surname': 'Jhonson', 'credit': 1000000.00}
animal1 = {'type': 03, 'cname': 'cow', 'sciname': 'Bos....', 'legs': …Run Code Online (Sandbox Code Playgroud) 我熟悉python但对panda DataFrames来说是新手.我有一个这样的字典:
a={'b':100,'c':300}
Run Code Online (Sandbox Code Playgroud)
我想将其转换为DataFrame,其中b和c是列名,第一行是100,300(100位于b下方,300位于c下方).我想要一个可以推广到更长字典的解决方案,还有更多项目.谢谢!
说我有三本字典
dictionary_col2
{'MOB': [1, 2], 'ASP': [1, 2], 'YIP': [1, 2]}
Run Code Online (Sandbox Code Playgroud)
dictionary_col3
{'MOB': ['MOB_L001_R1_001.gz',
'MOB_L002_R1_001.gz'],
'ASP': ['ASP_L001_R1_001.gz',
'ASP_L002_R1_001.gz'],
'YIP': ['YIP_L001_R1_001.gz',
'YIP_L002_R1_001.gz']}
Run Code Online (Sandbox Code Playgroud)
dictionary_col4
{'MOB': ['MOB_L001_R2_001.gz',
'MOB_L002_R2_001.gz'],
'ASP': ['ASP_L001_R2_001.gz',
'ASP_L002_R2_001.gz'],
'YIP': ['YIP_L001_R2_001.gz',
'YIP_L002_R2_001.gz']}
Run Code Online (Sandbox Code Playgroud)
我想将上述字典转换为数据框。我尝试了以下方法
df = pd.DataFrame([dictionary_col2, dictionary_col3, dictionary_col4])
该df数据帧的样子,
ASP MOB YIP
0 [1, 2] [1, 2] [1, 2]
1 [ASP_L001_R1_001.gz, ASP_L002_R1_001.gz] [MOB_L001_R1_001.gz, MOB_L002_R1_001.gz] [YIP_L001_R1_001.gz, YIP_L002_R1_001.gz]
2 [ASP_L001_R2_001.gz, ASP_L002_R2_001.gz] [MOB_L001_R2_001.gz, MOB_L002_R2_001.gz] [YIP_L001_R2_001.gz, YIP_L002_R2_001.gz]
Run Code Online (Sandbox Code Playgroud)
我的目标是建立一个包含以下各列的数据框:
col1 col2 col3 col4
MOB 1 MOB_L001_R1_001.gz MOB_L001_R2_001.gz
MOB 2 MOB_L002_R1_001.gz MOB_L002_R2_001.gz
ASP 1 ASP_L001_R1_001.gz …Run Code Online (Sandbox Code Playgroud) 让给定的字典是
d = [{'a':1,'b':4},{'b':2}]
Run Code Online (Sandbox Code Playgroud)
所以基本上我想要一个这样的矩阵
| 'a' | 'b' |
_______________
| 1 | 4 |
| na | 2 |
Run Code Online (Sandbox Code Playgroud)
如何有效地做到这一点?
鉴于:
a = [[1,2],[3,4],[5,6],[7,8]]
b = 3
Run Code Online (Sandbox Code Playgroud)
我想删除一个项目a,b因为它是第一个项目.所以在这种情况下我们会删除[3,4]给:
a = [[1,2],[5,6],[7,8]]
Run Code Online (Sandbox Code Playgroud)
我目前的代码是:
if b in [i[0] for i in a]:
pos = [i[0] for i in a].index(b)
del a[pos]
Run Code Online (Sandbox Code Playgroud)
这有效,但很慢.有什么更好的方法呢?
编辑:我之前没有测试过性能,所以我可能做错了但是我得到了这个:
def fun1():
lst = [[x, 2*x] for x in range(1000000)]
lst = [x for x in lst if x[0] != 500]
return lst
def fun2():
lst = [[x, 2*x] for x in range(1000000)]
for i in reversed(range(len(lst))):
if lst[i][0] == 500:
del lst[i] …Run Code Online (Sandbox Code Playgroud) 我想尝试建立一个包含特定词典的列表。我希望结构类似于以下内容:
\n\n[{'label': 'Abdelnaby, Alaa', 'value': '76001'},\n{'label': 'Abdul-Aziz, Zaid', 'value': '76002'},\n{'label': 'Abdul-Jabbar, Kareem', 'value': '76003'}]\nRun Code Online (Sandbox Code Playgroud)\n\n目前,我从中提取的数据位于 pandas 数据框中。下面的例子...
\n\nPlayerID Name Current Player First Season Last Season\n76001 Abdelnaby, Alaa 0 1990 1994\n76002 Abdul-Aziz, Zaid 0 1968 1977\n76003 Abdul-Jabbar, Kareem 0 1969 1988\n51 Abdul-Rauf, Mahmoud 0 1990 2000\n1505 Abdul-Wahad, Tariq 0 1997 2003\nRun Code Online (Sandbox Code Playgroud)\n\n如果这足够了,请告诉我\xe2\x80\x8b。非常感谢你的帮助!
\n我正面临一个基本问题,即转换从使用json格式的文本解析列获得的字典列表.以下是数据的简要快照:
[{u'PAGE TYPE': u'used-serp.model.brand.city'},
{u'BODY TYPE': u'MPV Cars',
u'ENGINE CAPACITY': u'1461',
u'FUEL TYPE': u' Diesel',
u'MODEL NAME': u'Renault Lodgy',
u'OEM NAME': u'Renault',
u'PAGE TYPE': u'New-ModelPage.OverviewTab'},
{u'PAGE TYPE': u'used-serp.brand.city'},
{u'BODY TYPE': u'SUV Cars',
u'ENGINE CAPACITY': u'2477',
u'FUEL TYPE': u' Diesel',
u'MODEL NAME': u'Mitsubishi Pajero',
u'OEM NAME': u'Mitsubishi',
u'PAGE TYPE': u'New-ModelPage.OverviewTab'},
{u'BODY TYPE': u'Hatchback Cars',
u'ENGINE CAPACITY': u'1198',
u'FUEL TYPE': u' Petrol , Diesel',
u'MODEL NAME': u'Volkswagen Polo',
u'OEM NAME': u'Volkswagen',
u'PAGE TYPE': u'New-ModelPage.GalleryTab'},
Run Code Online (Sandbox Code Playgroud)
此外,我用来解析的代码详述如下:
stdf_noncookie = []
stdf_noncookiejson = []
for …Run Code Online (Sandbox Code Playgroud) pandas ×11
python ×11
dataframe ×4
dictionary ×3
json ×2
list ×2
python-3.x ×2
for-loop ×1
google-maps ×1
join ×1
merge ×1
numpy ×1