小编jez*_*ael的帖子

计算pandas DataFrame列中的值的频率

我想计算每个值出现在数据帧中的次数.

这是我的数据框 - df:

    status
1     N
2     N
3     C
4     N
5     S
6     N
7     N
8     S
9     N
10    N
11    N
12    S
13    N
14    C
15    N
16    N
17    N
18    N
19    S
20    N
Run Code Online (Sandbox Code Playgroud)

我想要计数字典:

恩. counts = {N: 14, C:2, S:4}

我试过df['status']['N']但它给了但keyErrordf['status'].value_counts没有用.

python django dataframe pandas

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

比较Pandas DataFrame中的先前行值

import pandas as pd
data={'col1':[1,3,3,1,2,3,2,2]}
df=pd.DataFrame(data,columns=['col1'])
print df


         col1  
    0     1          
    1     3          
    2     3          
    3     1          
    4     2          
    5     3          
    6     2          
    7     2          
Run Code Online (Sandbox Code Playgroud)

我有以下Pandas DataFrame,我想创建另一个列,比较前一行col1,看看它们是否相等.最好的方法是什么?它就像下面的DataFrame.谢谢

    col1  match  
0     1   False     
1     3   False     
2     3   True     
3     1   False     
4     2   False     
5     3   False     
6     2   False     
7     2   True     
Run Code Online (Sandbox Code Playgroud)

python boolean numpy shift pandas

23
推荐指数
4
解决办法
2万
查看次数

python - 使用大型csv的pandas结构(迭代和chunksize)

我有一个大的csv文件,大约600mb,有1100万行,我想创建像枢轴,直方图,图形等统计数据.显然,我只是想正常阅读它:

df = pd.read_csv('Check400_900.csv', sep='\t')
Run Code Online (Sandbox Code Playgroud)

不起作用,所以我发现迭代和chunksize在类似的帖子,所以我用

df = pd.read_csv('Check1_900.csv', sep='\t', iterator=True, chunksize=1000)
Run Code Online (Sandbox Code Playgroud)

一切都很好,我可以举例print df.get_chunk(5) 来说,只搜索整个文件

for chunk in df:
    print chunk
Run Code Online (Sandbox Code Playgroud)

我的问题是我不知道如何在整个df中使用下面这些东西,而不仅仅是一个块

plt.plot()
print df.head()
print df.describe()
print df.dtypes
customer_group3 = df.groupby('UserID')
y3 = customer_group.size()
Run Code Online (Sandbox Code Playgroud)

我希望我的问题不那么令人困惑

python csv bigdata dataframe pandas

22
推荐指数
3
解决办法
4万
查看次数

融化Pandas Dataframe的上三角矩阵

给定以下形式的方形pandas DataFrame:

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

我怎么才能melt得到上三角形

 Row     Column    Value
  a        a       1
  a        b       .5 
  a        c       .3
  b        b       1
  b        c       .4
  c        c       1 

#Note the combination a,b is only listed once.  There is no b,a listing     
Run Code Online (Sandbox Code Playgroud)

我对一个习惯性的熊猫解决方案更感兴趣,一个自定义索引器很容易手工编写...提前感谢您的考虑和响应.

python numpy reshape melt pandas

22
推荐指数
2
解决办法
9572
查看次数

pandas xlsxwriter,格式标题

我正在使用xlsxwriter保存pandas DataFrame to_excel.我已经设法格式化我的所有数据(设置列宽,字体大小等),除了更改标题的字体,我找不到这样做的方法.这是我的例子:

import pandas as pd
data = pd.DataFrame({'test_data': [1,2,3,4,5]})
writer = pd.ExcelWriter('test.xlsx', engine='xlsxwriter')

data.to_excel(writer, sheet_name='test', index=False)

workbook  = writer.book
worksheet = writer.sheets['test']

font_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10})
header_fmt = workbook.add_format({'font_name': 'Arial', 'font_size': 10, 'bold': True})

worksheet.set_column('A:A', None, font_fmt)
worksheet.set_row(0, None, header_fmt)

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

试图为标题设置格式的倒数第二行什么都不做.

python format excel pandas xlsxwriter

22
推荐指数
5
解决办法
1万
查看次数

如何通过pandas或spark数据帧删除所有行中具有相同值的列?

假设我的数据类似于以下内容:

  index id   name  value  value2  value3  data1  val5
    0  345  name1    1      99      23     3      66
    1   12  name2    1      99      23     2      66
    5    2  name6    1      99      23     7      66
Run Code Online (Sandbox Code Playgroud)

我们如何使用python在一个命令或几个命令中删除所有列(如value,value2(value3),所有行具有相同值的列)?

考虑到我们有类似的许多列value,value2,value3... value200.

输出:

   index id      name   data1
        0  345  name1    3
        1   12  name2    2
        5    2  name6    7
Run Code Online (Sandbox Code Playgroud)

python duplicates multiple-columns pandas spark-dataframe

22
推荐指数
2
解决办法
1万
查看次数

groupby.value_counts()之后的pandas reset_index

我正在尝试将列分组并计算另一列上的值计数.

import pandas as pd
dftest = pd.DataFrame({'A':[1,1,1,1,1,1,1,1,1,2,2,2,2,2], 
               'Amt':[20,20,20,30,30,30,30,40, 40,10, 10, 40,40,40]})

print(dftest)
Run Code Online (Sandbox Code Playgroud)

dftest看起来像

    A  Amt
0   1   20
1   1   20
2   1   20
3   1   30
4   1   30
5   1   30
6   1   30
7   1   40
8   1   40
9   2   10
10  2   10
11  2   40
12  2   40
13  2   40
Run Code Online (Sandbox Code Playgroud)

执行分组

grouper = dftest.groupby('A')
df_grouped = grouper['Amt'].value_counts()
Run Code Online (Sandbox Code Playgroud)

这使

   A  Amt
1  30     4
   20     3
   40     2
2  40     3
   10     2 …
Run Code Online (Sandbox Code Playgroud)

python data-manipulation dataframe pandas data-science

22
推荐指数
1
解决办法
2万
查看次数

Python/Pandas中R/ifelse的等价物?比较字符串列?

我的目标是比较两列并添加结果列.R使用ifelse,但我需要知道熊猫的方式.

[R

> head(mau.payment)
  log_month user_id install_month payment
1   2013-06       1       2013-04       0
2   2013-06       2       2013-04       0
3   2013-06       3       2013-04   14994

> mau.payment$user.type <-ifelse(mau.payment$install_month == mau.payment$log_month, "install", "existing")
> head(mau.payment)
  log_month user_id install_month payment user.type
1   2013-06       1       2013-04       0  existing
2   2013-06       2       2013-04       0  existing
3   2013-06       3       2013-04   14994  existing
4   2013-06       4       2013-04       0  existing
5   2013-06       6       2013-04       0  existing
6   2013-06       7       2013-04       0  existing
Run Code Online (Sandbox Code Playgroud)

熊猫

>>> maupayment
user_id  log_month  install_month
1 …
Run Code Online (Sandbox Code Playgroud)

python numpy r pandas

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

如何将数据框转换为一系列列表?

我不得不这样做几次,我总是感到沮丧.我有一个数据帧:

df = pd.DataFrame([[1, 2, 3, 4], [5, 6, 7, 8]], ['a', 'b'], ['A', 'B', 'C', 'D'])

print df

   A  B  C  D
a  1  2  3  4
b  5  6  7  8
Run Code Online (Sandbox Code Playgroud)

我想df变成:

pd.Series([[1, 2, 3, 4], [5, 6, 7, 8]], ['a', 'b'])

a    [1, 2, 3, 4]
b    [5, 6, 7, 8]
dtype: object
Run Code Online (Sandbox Code Playgroud)

我试过了

df.apply(list, axis=1)
Run Code Online (Sandbox Code Playgroud)

哪个让我回来了 df

这样做的方便/有效方法是什么?

python list series dataframe pandas

20
推荐指数
2
解决办法
2208
查看次数

Pandas从列中可用的列表数据中扩展行

我在熊猫中有这样的数据框:

 column1      column2
 [a,b,c]        1
 [d,e,f]        2
 [g,h,i]        3
Run Code Online (Sandbox Code Playgroud)

预期产量:

column1      column2
  a              1
  b              1
  c              1
  d              2
  e              2
  f              2
  g              3
  h              3
  i              3
Run Code Online (Sandbox Code Playgroud)

如何处理这些数据?

python expand list dataframe pandas

20
推荐指数
3
解决办法
9696
查看次数