我想创建一个堆叠直方图.如果我有一个由三个等长数据集组成的二维数组,这很简单.代码和图片如下:
import numpy as np
from matplotlib import pyplot as plt
# create 3 data sets with 1,000 samples
mu, sigma = 200, 25
x = mu + sigma*np.random.randn(1000,3)
#Stack the data
plt.figure()
n, bins, patches = plt.hist(x, 30, stacked=True, normed = True)
plt.show()

但是,如果我尝试使用具有不同长度的三个数据集的类似代码,则结果是一个直方图覆盖另一个直方图.有什么办法可以用混合长度数据集进行叠加直方图吗?
##Continued from above
###Now as three separate arrays
x1 = mu + sigma*np.random.randn(990,1)
x2 = mu + sigma*np.random.randn(980,1)
x3 = mu + sigma*np.random.randn(1000,1)
#Stack the data
plt.figure()
plt.hist(x1, bins, stacked=True, normed = True)
plt.hist(x2, bins, …迭代一大堆.mp3链接以获取元数据标签并将其保存到Excel文件中.导致此错误.我感谢任何帮助.谢谢.
    #print is_connected();
    # Create a Pandas dataframe from the data.
df = pd.DataFrame({'Links' : lines ,'Titles' : titles , 'Singers': finalsingers , 'Albums':finalalbums , 'Years' : years})
    # Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter(xlspath, engine='xlsxwriter')
    # Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')
    #df.to_excel(writer, sheet_name='Sheet1')
    # Close the Pandas Excel writer and output the Excel file.
writer.save()
Traceback (most recent call last):
  File "mp.py", line 87, in <module>
    df …我有一个像这样的长json:http://pastebin.com/gzhHEYGy
我想将它放入一个pandas数据框中以便使用它,因此通过文档我执行以下操作:
df = pd.read_json('/user/file.json')
print df
我得到了这个追溯:
  File "/Users/user/PycharmProjects/PAN-pruebas/json_2_dataframe.py", line 6, in <module>
    df = pd.read_json('/Users/user/Downloads/54db3923f033e1dd6a82222aa2604ab9.json')
  File "/usr/local/lib/python2.7/site-packages/pandas/io/json.py", line 198, in read_json
    date_unit).parse()
  File "/usr/local/lib/python2.7/site-packages/pandas/io/json.py", line 266, in parse
    self._parse_no_numpy()
  File "/usr/local/lib/python2.7/site-packages/pandas/io/json.py", line 483, in _parse_no_numpy
    loads(json, precise_float=self.precise_float), dtype=None)
  File "/usr/local/lib/python2.7/site-packages/pandas/core/frame.py", line 203, in __init__
    mgr = self._init_dict(data, index, columns, dtype=dtype)
  File "/usr/local/lib/python2.7/site-packages/pandas/core/frame.py", line 327, in _init_dict
    dtype=dtype)
  File "/usr/local/lib/python2.7/site-packages/pandas/core/frame.py", line 4620, in _arrays_to_mgr
    index = extract_index(arrays)
  File "/usr/local/lib/python2.7/site-packages/pandas/core/frame.py", line 4668, in extract_index
    raise ValueError('arrays must …这是我的代码.由于要解析的原始数据的内容,我最终得到的"用户列表"和"推文列表"的长度不同.将列表作为数据框中的列写入时,我得到了ValueError: arrays must all be same length.我意识到这一点,但一直在寻找一种方法来解决它,打印0或NaN在较短阵列的正确位置.有任何想法吗?
import pandas
from bs4 import BeautifulSoup
soup = BeautifulSoup(open('#raw.html'))
chunk = soup.find_all('div', class_='content')
userlist = []
tweetlist = []
for tweet in chunk:
    username = tweet.find_all(class_='username js-action-profile-name')
    for user in username:
        user2 = user.get_text()
        userlist.append(user2)
for text in chunk:
    tweets = text.find_all(class_='js-tweet-text tweet-text')
for tweet in tweets:
    tweet2 = tweet.get_text().encode('utf-8')
    tweetlist.append('|'+tweet2)
print len(tweetlist)
print len(userlist)
#MAKE A DATAFRAME WITH THIS
data = {'tweet' : tweetlist, 'user' : …我有一个列表的字典(具有可变长度),我期待从中创建一个Dataframe的有效方法.
假设我有最小列表长度,所以我可以在创建Dataframe时截断更大列表的大小.
这是我的虚拟代码
data_dict = {'a': [1,2,3,4], 'b': [1,2,3], 'c': [2,45,67,93,82,92]}
min_length = 3
我可以拥有10k或20k密钥的字典,因此寻找一种有效的方法来创建像下面这样的DataFrame
>>> df
   a  b   c
0  1  1   2
1  2  2  45
2  3  3  67
我希望这听起来不是一个公开的讨论问题.我将针对具体案例提供一些细节.
我是Pandas的新手,我需要存储几个2D阵列,其中列表示频率,行表示方向(2D波谱,如果您很好奇).每个数组代表一个特定的时间.
我将这些数组存储为Pandas DataFrames,但为了将它们保存在单个对象中,我想到了两个选项:
将DataFrame存储在字典中,其中键是时间戳.
将数据框存储在Pandas面板中,其中项目是时间戳.
第一个选项看起来很简单,并且可以灵活地存储具有不同大小,索引和列名的数组.第二个选项似乎更适合处理数据,因为面板具有特定的方法,也可以轻松保存或导出(例如,到csv或pickle).
这两个选项中哪一个更适合:速度,内存使用,灵活性和数据分析?
问候
在这里,我有很多不同长度的列表,比如a=[1,2,3]和b=[2,3]
我想从它们生成一个pd.DataFrame,通过nan在列表末尾填充,如下所示:
   a  b
1  1  2 
2  2  3
3  3  nan
有什么好主意可以帮我这么做吗?
我想从字典中创建一个数据框。键的每个值实际上是其中包含多个值的数组。
>>> my_dict = {"a": [1,2,3], "b": [0], "c": [3,5] }
我想要第1列中的所有键以及第2列中的整个值数组。
我已经试过这篇文章。从条目长度不同的字典创建数据框
但是此解决方案将所有值从键分隔到多列。
预期DF应该看起来像这样
>>> df 
      Key_Column   Value_Column
          a            [1,2,3]
          b            [0]
          c            [3,5]
经过大量研究,我无法弄清楚为什么在我的代码中收到此错误。
我正在尝试将 Pandas Dataframe 导出到我的 Oracle 表。我已经在其他数据表上成功完成了数百次,但这个不断产生错误。
这是我的数据框,我pd.read_excel用简单的df['column_name'] = variable命令阅读并附加了我自己的三列:
S USTAINABLE H ARVEST S ECTOR| QUOTA LISTING APRIL 16 2013 Unnamed: 1  \
1                                                DATE           TRADE ID   
2                                            04/02/13             130014   
3                                                   0                  0   
4                                                   0                  0   
5                                                   0                  0   
6                                 FY13 QUOTA – TO BUY                  0   
7                                                DATE           TRADE ID   
8                                             3/26/13             130006   
9                                              4/9/13             130012   
10                                            3/26/13             130007   
11                                            3/26/13             130001   
12                                            3/26/13             130009   
13                                             4/9/13             130013   
14                                            3/26/13             130010   
15                                            3/26/13             130008   
16 …我有一个输入 dict-of-string-to-list,列表的长度可能不同。
d = {'b': [2,3], 'a': [1]}
当我这样做时:df = pd.DataFrame(data=d),我看到ValueError: arrays must all be same length
问题:如何在创建 df 时使用默认值(例如 0)填充缺失值?
创建 df 的原因是为了得到最终结果:
{'b': 3} 
而3是列表中所有数字的最大值。
关于groupby到dataframe有一个非常受欢迎的SO问题,请看这里.不幸的是,我不认为这个特定的用例是最有用的.
假设您有一个展平形式的分层数据集:
例如
     key    val 
0    'a'    2
1    'a'    1
2    'b'    3
3    'b'    4
我想做的是将该数据帧转换为此结构
    'a'  'b'
0    2    3
1    1    4
我觉得这会很简单
pd.DataFrame(df.groupby('key').groups)
但事实并非如此.
那么我该如何进行这种转变呢?
我有一个有 3000 个键的字典,每个键都有一个列表作为它的值,
例子:
dictionary = {'yup': ['chocolate', 'pizza', 'rainbows'], 'tape': ['what', 'milk'], ....}
我想将此字典转换为数据库,但由于我的值不相等,因此无法使用 pandas 命令“ pd.DataFrame(dictionary)”。我收到错误消息“数组的长度必须相同”。
我的问题是,我如何仍然创建一个数据框(转置它)并在没有数据的地方使用空单元格。
例子:
index   column1      column2   column3 
`'yup'  'chocolate'  'pizza'    'rainbows`'
'tape'  'what'       'milk'     blank
pandas ×11
python ×11
dataframe ×7
dictionary ×3
python-3.x ×2
arrays ×1
cx-oracle ×1
io ×1
json ×1
matplotlib ×1
panel ×1
parsing ×1
sql ×1