相关疑难解决方法(0)

在pandas数据框中选择多个列

我有不同列中的数据,但我不知道如何提取它以将其保存在另一个变量中.

index  a   b   c
1      2   3   4
2      3   4   5
Run Code Online (Sandbox Code Playgroud)

我该如何选择'a','b'并保存到DF1?

我试过了

df1 = df['a':'b']
df1 = df.ix[:, 'a':'b']
Run Code Online (Sandbox Code Playgroud)

似乎没有工作.

python select dataframe pandas

938
推荐指数
19
解决办法
196万
查看次数

双方括号[[]]比Bash中的单方括号[]更好吗?

最近在一次代码审查中,一位同事声称该[[ ]]构造比[ ]在类似的构造中更受欢迎

if [ "`id -nu`" = "$someuser" ] ; then 
     echo "I love you madly, $someuser"
fi
Run Code Online (Sandbox Code Playgroud)

他无法提供理由.有吗?

syntax bash if-statement

514
推荐指数
8
解决办法
20万
查看次数

将多个csv文件导入pandas并连接到一个DataFrame中

我想从目录中读取几个csv文件到pandas并将它们连接成一个大的DataFrame.我虽然无法弄明白.这是我到目前为止:

import glob
import pandas as pd

# get data file names
path =r'C:\DRO\DCL_rawdata_files'
filenames = glob.glob(path + "/*.csv")

dfs = []
for filename in filenames:
    dfs.append(pd.read_csv(filename))

# Concatenate all data into one DataFrame
big_frame = pd.concat(dfs, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

我想在for循环中需要一些帮助???

python csv concatenation dataframe pandas

319
推荐指数
13
解决办法
30万
查看次数

使用pandas循环数据帧的最有效方法是什么?

我希望以顺序方式对数据框中的财务数据执行我自己的复杂操作.

例如,我使用从Yahoo Finance获取的以下MSFT CSV文件:

Date,Open,High,Low,Close,Volume,Adj Close
2011-10-19,27.37,27.47,27.01,27.13,42880000,27.13
2011-10-18,26.94,27.40,26.80,27.31,52487900,27.31
2011-10-17,27.11,27.42,26.85,26.98,39433400,26.98
2011-10-14,27.31,27.50,27.02,27.27,50947700,27.27

....
Run Code Online (Sandbox Code Playgroud)

然后我做以下事情:

#!/usr/bin/env python
from pandas import *

df = read_csv('table.csv')

for i, row in enumerate(df.values):
    date = df.index[i]
    open, high, low, close, adjclose = row
    #now perform analysis on open/close based on date, etc..
Run Code Online (Sandbox Code Playgroud)

这是最有效的方式吗?鉴于对熊猫速度的关注,我认为必须有一些特殊的函数来迭代遍历值,同时也检索索引(可能通过生成器来节省内存)?df.iteritems遗憾的是,只能逐列迭代.

python performance for-loop dataframe pandas

306
推荐指数
10
解决办法
41万
查看次数

错误“‘DataFrame’对象没有属性‘append’”

我试图将字典附加到 DataFrame 对象,但出现以下错误:

AttributeError:“DataFrame”对象没有属性“append”

据我所知,DataFrame确实有“append”方法。

代码片段:

df = pd.DataFrame(df).append(new_row, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

我期待字典new_row被添加为新行。

我该如何修复它?

python attributeerror dataframe pandas

205
推荐指数
3
解决办法
39万
查看次数

在逐行迭代时更新pandas中的数据帧

我有一个像这样的熊猫数据框(它是一个非常大的)

           date      exer exp     ifor         mat  
1092  2014-03-17  American   M  528.205  2014-04-19 
1093  2014-03-17  American   M  528.205  2014-04-19 
1094  2014-03-17  American   M  528.205  2014-04-19 
1095  2014-03-17  American   M  528.205  2014-04-19    
1096  2014-03-17  American   M  528.205  2014-05-17 
Run Code Online (Sandbox Code Playgroud)

现在我想逐行迭代,当我遍历每一行时,每行的值ifor 可以根据某些条件改变,我需要查找另一个数据帧.

现在,我如何在迭代时更新它.尝试了一些他们都没有工作的事情.

for i, row in df.iterrows():
    if <something>:
        row['ifor'] = x
    else:
        row['ifor'] = y

    df.ix[i]['ifor'] = x
Run Code Online (Sandbox Code Playgroud)

这些方法似乎都不起作用.我没有看到数据框中的值已更新.

python updates dataframe pandas

166
推荐指数
7
解决办法
18万
查看次数

什么是"矢量化"?

好几次,我在matlab,fortran ......中遇到过这个术语......但是我从来没有找到解释是什么意思,它有什么作用?所以我在这里问,什么是矢量化,例如,"循环是矢量化的"是什么意思?

vectorization

154
推荐指数
6
解决办法
6万
查看次数

通过pandas数据帧逐行迭代

我正在寻找通过熊猫逐行迭代DataFrame.我到目前为止的方式如下:

for i in df.index:
    do_something(df.ix[i])
Run Code Online (Sandbox Code Playgroud)

是否有更高性能和/或更惯用的方式来做到这一点?我知道应用,但有时使用for循环更方便.

python pandas

135
推荐指数
0
解决办法
20万
查看次数

如何循环分组的Pandas数据帧?

数据帧:

  c_os_family_ss c_os_major_is l_customer_id_i
0      Windows 7                         90418
1      Windows 7                         90418
2      Windows 7                         90418
Run Code Online (Sandbox Code Playgroud)

码:

print df
for name, group in df.groupby('l_customer_id_i').agg(lambda x: ','.join(x)):
    print name
    print group
Run Code Online (Sandbox Code Playgroud)

我试图循环聚合数据,但我收到错误:

ValueError:要解压缩的值太多

@EdChum,这是预期的输出:

                                                    c_os_family_ss  \
l_customer_id_i
131572           Windows 7,Windows 7,Windows 7,Windows 7,Window...
135467           Windows 7,Windows 7,Windows 7,Windows 7,Window...

                                                     c_os_major_is
l_customer_id_i
131572           ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...
135467           ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,...
Run Code Online (Sandbox Code Playgroud)

输出不是问题,我希望遍历每个组.

python pandas

117
推荐指数
3
解决办法
13万
查看次数

正确的方法来反转pandas.DataFrame?

这是我的代码:

import pandas as pd

data = pd.DataFrame({'Odd':[1,3,5,6,7,9], 'Even':[0,2,4,6,8,10]})

for i in reversed(data):
    print(data['Odd'], data['Even'])
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我收到以下错误:

Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\pandas\core\generic.py", line 665, in _get_item_cache
    return cache[item]
KeyError: 5

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\*****\Documents\******\********\****.py", line 5, in <module>
    for i in reversed(data):
  File "C:\Python33\lib\site-packages\pandas\core\frame.py", line 2003, in __getitem__
    return self._get_item_cache(key)
  File "C:\Python33\lib\site-packages\pandas\core\generic.py", line 667, in _get_item_cache
    values = self._data.get(item)
  File "C:\Python33\lib\site-packages\pandas\core\internals.py", line 1656, in get
    _, block …
Run Code Online (Sandbox Code Playgroud)

python reverse pandas

91
推荐指数
5
解决办法
12万
查看次数