标签: pandas

如果列中的值位于设置的值列表中,则过滤数据帧行

我有一个Python pandas DataFrame rpt:

rpt
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 47518 entries, ('000002', '20120331') to ('603366', '20091231')
Data columns:
STK_ID                    47518  non-null values
STK_Name                  47518  non-null values
RPT_Date                  47518  non-null values
sales                     47518  non-null values
Run Code Online (Sandbox Code Playgroud)

我可以过滤库存ID '600809'如下的行:rpt[rpt['STK_ID'] == '600809']

<class 'pandas.core.frame.DataFrame'>
MultiIndex: 25 entries, ('600809', '20120331') to ('600809', '20060331')
Data columns:
STK_ID                    25  non-null values
STK_Name                  25  non-null values
RPT_Date                  25  non-null values
sales                     25  non-null values
Run Code Online (Sandbox Code Playgroud)

我想把一些股票的所有行放在一起,例如['600809','600141','600329'].这意味着我想要这样的语法:

stk_list = ['600809','600141','600329']

rst = rpt[rpt['STK_ID'] in stk_list] # …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

378
推荐指数
7
解决办法
27万
查看次数

如何将pandas数据帧的索引转换为列?

这似乎相当明显,但我似乎无法弄清楚如何将数据框的索引转换为列?

例如:

df=
        gi       ptt_loc
 0  384444683      593  
 1  384444684      594 
 2  384444686      596  
Run Code Online (Sandbox Code Playgroud)

至,

df=
    index1    gi       ptt_loc
 0  0     384444683      593  
 1  1     384444684      594 
 2  2     384444686      596  
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

374
推荐指数
7
解决办法
44万
查看次数

如何计算pandas组中每组(和其他统计信息)的行数?

我有一个数据框df,我使用它的几个列groupby:

df['col1','col2','col3','col4'].groupby(['col1','col2']).mean()
Run Code Online (Sandbox Code Playgroud)

以上面的方式,我几乎得到了我需要的表(数据框).缺少的是包含每个组中行数的附加列.换句话说,我有意思,但我也想知道有多少数字被用来获得这些手段.例如,在第一组中有8个值,在第二组中有10个,依此类推.

python group-by dataframe pandas pandas-groupby

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

按整数索引选择一行pandas系列/ dataframe

我很好奇为什么df[2]不受支持,df.ix[2]而且df[2:3]两者都有效.

In [26]: df.ix[2]
Out[26]: 
A    1.027680
B    1.514210
C   -1.466963
D   -0.162339
Name: 2000-01-03 00:00:00

In [27]: df[2:3]
Out[27]: 
                  A        B         C         D
2000-01-03  1.02768  1.51421 -1.466963 -0.162339
Run Code Online (Sandbox Code Playgroud)

我期望df[2]df[2:3]与Python索引约定一致的方式工作.是否存在不支持单个整数索引行的设计原因?

python indexing dataframe pandas

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

pandas + dataframe - 按部分字符串选择

我有一个DataFrame4列,其中2列包含字符串值.我想知道是否有办法根据与特定列的部分字符串匹配来选择行?

换句话说,函数或lambda函数会做类似的事情

re.search(pattern, cell_in_question) 
Run Code Online (Sandbox Code Playgroud)

返回一个布尔值.我熟悉语法,df[df['A'] == "hello world"]但似乎无法找到一种方法来做同样的部分字符串匹配说'hello'.

有人能指出我正确的方向吗?

python string dataframe pandas

356
推荐指数
12
解决办法
49万
查看次数

如何为Pandas数据帧实现'in'和'not in'

我怎样才能实现SQL的的等价物INNOT IN

我有一个包含所需值的列表.这是场景:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = ['UK','China']

# pseudo-code:
df[df['countries'] not in countries]
Run Code Online (Sandbox Code Playgroud)

我目前的做法如下:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = pd.DataFrame({'countries':['UK','China'], 'matched':True})

# IN
df.merge(countries,how='inner',on='countries')

# NOT IN
not_in = df.merge(countries,how='left',on='countries')
not_in = not_in[pd.isnull(not_in['matched'])]
Run Code Online (Sandbox Code Playgroud)

但这似乎是一个可怕的kludge.任何人都可以改进吗?

python sql-function dataframe pandas

353
推荐指数
9
解决办法
34万
查看次数

随机数据帧行

我有以下DataFrame:

    Col1  Col2  Col3  Type
0      1     2     3     1
1      4     5     6     1
...
20     7     8     9     2
21    10    11    12     2
...
45    13    14    15     3
46    16    17    18     3
...
Run Code Online (Sandbox Code Playgroud)

从csv文件中读取DataFrame.所有具有Type1的行都在顶部,其次是具有Type2 的行,然后是具有Type3 的行等.

我想改组DataFrame的行,以便所有的行Type都是混合的.可能的结果可能是:

    Col1  Col2  Col3  Type
0      7     8     9     2
1     13    14    15     3
...
20     1     2     3     1
21    10    11    12     2
...
45     4     5     6 …
Run Code Online (Sandbox Code Playgroud)

python shuffle permutation dataframe pandas

345
推荐指数
8
解决办法
27万
查看次数

如何避免Python/Pandas在保存的csv中创建索引?

我在对文件进行一些编辑后尝试将csv保存到文件夹中.

每次我使用pd.to_csv('C:/Path of file.csv')csv文件都有一个单独的索引列.我想避免将索引打印到csv.

我试过了:

pd.read_csv('C:/Path to file to edit.csv', index_col = False)
Run Code Online (Sandbox Code Playgroud)

并保存文件...

pd.to_csv('C:/Path to save edited file.csv', index_col = False)
Run Code Online (Sandbox Code Playgroud)

但是,我仍然得到了不需要的索引列.保存文件时如何避免这种情况?

python csv indexing pandas

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

使用Python在Pandas中读取CSV文件时的UnicodeDecodeError

我正在运行一个处理30,000个类似文件的程序.随机数量正在停止并产生此错误......

   File "C:\Importer\src\dfman\importer.py", line 26, in import_chr
     data = pd.read_csv(filepath, names=fields)
   File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 400, in parser_f
     return _read(filepath_or_buffer, kwds)
   File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 205, in _read
     return parser.read()
   File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 608, in read
     ret = self._engine.read(nrows)
   File "C:\Python33\lib\site-packages\pandas\io\parsers.py", line 1028, in read
     data = self._reader.read(nrows)
   File "parser.pyx", line 706, in pandas.parser.TextReader.read (pandas\parser.c:6745)
   File "parser.pyx", line 728, in pandas.parser.TextReader._read_low_memory (pandas\parser.c:6964)
   File "parser.pyx", line 804, in pandas.parser.TextReader._read_rows (pandas\parser.c:7780)
   File "parser.pyx", line 890, in pandas.parser.TextReader._convert_column_data (pandas\parser.c:8793)
   File "parser.pyx", line 950, in pandas.parser.TextReader._convert_tokens …
Run Code Online (Sandbox Code Playgroud)

python csv unicode dataframe pandas

329
推荐指数
13
解决办法
32万
查看次数

将多个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万
查看次数