小编Arn*_*ein的帖子

展平嵌套的pandas数据帧

我想知道如何展平嵌套的pandas数据帧,如附图所示. 在此输入图像描述

嵌套属性由'data'字段给出.简而言之:我有一个参与者列表(由'participant_id'表示),他们在不同时间提交了回复('数据').我需要创建宽数据框,每个时间戳的每个参与者都有一行数据记录('q1','q2',...,'summary')

提前谢谢了!

python dataframe pandas

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

使用 Pandas 忽略 .diff() 中的 NaN

我需要计算每行沿 axis=1 的元素之间的差异,忽略缺失值 (NaN)。例如:

       0     1     2     3     4     5
20   NaN   7.0   5.0   NaN   NaN   8.0
21   7.0   5.0   NaN   NaN   8.0   NaN
22   5.0   NaN   NaN   8.0   NaN   7.0
23   NaN   NaN   8.0   NaN   7.0   NaN
24   NaN   8.0   NaN   7.0   NaN  10.0
25   8.0   NaN   7.0   NaN  10.0   NaN
26   NaN   7.0   NaN  10.0   NaN   NaN
27   7.0   NaN  10.0   NaN   NaN   9.0
28   NaN  10.0   NaN   NaN   9.0   6.0
29  10.0   NaN   NaN   9.0   6.0   6.0 …
Run Code Online (Sandbox Code Playgroud)

python diff nan pandas

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

在numpy数组中搜索模式

有没有一种简单的方法可以根据某种模式在NumPy数组中找到所有相关元素?

例如,请考虑以下数组:

a = array(['zzzz', 'zzzd', 'zzdd', 'zddd', 'dddn', 'ddnz', 'dnzn', 'nznz',
       'znzn', 'nznd', 'zndd', 'nddd', 'ddnn', 'dnnn', 'nnnz', 'nnzn',
       'nznn', 'znnn', 'nnnn', 'nnnd', 'nndd', 'dddz', 'ddzn', 'dznn',
       'znnz', 'nnzz', 'nzzz', 'zzzn', 'zznn', 'dddd', 'dnnd'], dtype=object)
Run Code Online (Sandbox Code Playgroud)

我需要找到包含'**dd'的所有组合.

我基本上需要一个函数,它接收数组作为输入并返回一个包含所有相关元素的较小数组:

>> b = func(a, pattern='**dd')
>> b = array(['zzdd', 'zddd', 'zndd', 'nddd', 'nndd', 'dddd'], dtype=object)
Run Code Online (Sandbox Code Playgroud)

python numpy

4
推荐指数
1
解决办法
3338
查看次数

在Pandas中选择不包含特定字符的行

我需要类似的东西

.str.startswith() 
.str.endswith()
Run Code Online (Sandbox Code Playgroud)

但是对于一个字符串的中间部分.

例如,给定以下pd.DataFrame

      str_name
   0    aaabaa
   1    aabbcb
   2    baabba
   3    aacbba
   4    baccaa
   5    ababaa
Run Code Online (Sandbox Code Playgroud)

我需要抛出包含(至少一个)字母'c'的第1,3和4行.
特定字母('c')的位置未知.
任务是删除包含至少一个特定字母的所有行

python pandas

4
推荐指数
1
解决办法
5000
查看次数

在熊猫中查找具有k连续NaN的行

给出以下示例:

 df = 
  0   NaN   5.0   NaN   6.0   NaN      
  1   5.0   6.0   6.0   NaN   NaN      
  2   6.0   6.0   NaN   NaN   NaN      
  3   6.0   NaN   NaN   NaN   6.0      
  4   NaN   NaN   NaN   6.0   NaN      
  5   6.0   6.0   6.0   8.0   7.0    
  6   6.0   6.0   8.0   7.0   8.0    
  7   6.0   8.0   7.0   8.0   8.0     
  8   8.0   7.0   8.0   8.0   NaN     
  9   7.0   8.0   8.0   NaN   9.0     
Run Code Online (Sandbox Code Playgroud)

如何找到具有连续k-NaN的行?例如,对于k=3,所需的行是[2,3,4]

python dataframe pandas

4
推荐指数
1
解决办法
375
查看次数

使用Pandas数据帧不相交组进行随机抽样

我需要通过属性将数据框随机分成两个不相交的集合'ids'.例如,请考虑以下数据框:

df=
Out[470]: 
          0     1     2     3       ids
0      17.0  18.0  16.0  15.0      13.0
1      18.0  16.0  15.0  15.0      13.0
2      16.0  15.0  15.0  16.0      13.0
131    12.0   8.0  21.0  19.0      14.0
132     8.0  21.0  19.0  20.0      14.0
133    21.0  19.0  20.0   9.0      14.0
248     NaN   NaN  12.0  11.0      17.0
249     NaN  12.0  11.0  10.0      17.0
250    12.0  11.0  10.0   NaN      17.0
287     3.0   3.0   1.0   8.0      20.0
288     3.0   1.0   8.0   3.0      20.0
289     1.0   8.0   3.0 …
Run Code Online (Sandbox Code Playgroud)

python disjoint-sets pandas

4
推荐指数
1
解决办法
628
查看次数

使用Pandas搜索文本中的所有匹配项

我有一个特定单词列表('令牌'),需要在纯文本中找到所有这些单词(如果有的话).我更喜欢使用Pandas来加载文本并执行搜索.我正在使用pandas,因为我的短文本集合带有时间戳,并且很容易将这些短文本组织成单个数据结构中的pandas.

例如:

考虑在Pandas上传的一系列获取的twitters:

                                              twitts
0                       today is a great day for BWM
1                    prices of german cars increased
2             Japan introduced a new model of Toyota
3  German car makers, such as BMW, Audi and VW mo...
Run Code Online (Sandbox Code Playgroud)

和汽车制造商名单:

list_of_car_makers = ['BMW', 'Audi','Mercedes','Toyota','Honda', 'VW']
Run Code Online (Sandbox Code Playgroud)

理想情况下,我需要获得以下数据框:

                                              twitts  cars_mentioned
0                       today is a great day for BMW  [BMW]
1                    prices of german cars increased  []
2             Japan introduced a new model of Toyota  [Toyota]
3  German car makers, such as BMW, Audi and …
Run Code Online (Sandbox Code Playgroud)

python regex nlp pandas

4
推荐指数
1
解决办法
311
查看次数

在Python中的列表中查找子组中的公共字符串

我正在尝试清除列表,删除重复项.例如:

 bb = ['Gppe (Aspirin Combined)', 
       'Gppe Cap (Migraine)',  
       'Gppe Tab', 
       'Abilify', 
       'Abilify Maintena', 
       'Abstem', 
       'Abstral']
Run Code Online (Sandbox Code Playgroud)

理想情况下,我需要获得以下列表:

 bb = ['Gppe', 
       'Abilify', 
       'Abstem', 
       'Abstral']
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

  1. 拆分列表并删除重复项(一种天真的方法)

    list(set(sorted([j for bb_i in bb for j in bb_i.split(' ')])))

留下了很多"垃圾":

['(Aspirin',
 '(Migraine)',
 'Abilify',
 'Abstem',
 'Abstral',
 'Cap',
 'Combined)',
 'Gppe',
 'Maintena',
 'Tab']
Run Code Online (Sandbox Code Playgroud)
  1. 找到最常用的词:

Counter(['Gppe (Aspirin Combined)', 'Gppe Cap (Migraine)', 'Gppe Tab').most_common(1)[0][0]

但我不确定如何找到类似的单词(一组)?

我想知道,是否可以使用一种'groupby()'和第一组按名称,然后删除这些名称中的重复项.

python list duplicates

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

将日期从Excel文件转换为熊猫

我正在导入excel文件,其中的“日期”列具有不同的编写方式:

      Date
13/03/2017
13/03/2017
13/03/2017
13/03/2017
   10/3/17
   10/3/17
    9/3/17
    9/3/17
    9/3/17
    9/3/17
Run Code Online (Sandbox Code Playgroud)

导入熊猫:

df = pd.read_excel('data_excel.xls')
df.Date = pd.to_datetime(df.Date)
Run Code Online (Sandbox Code Playgroud)

结果是:

                     Date
               13/03/2017
64             13/03/2017
65             13/03/2017
66             13/03/2017
67    2017-10-03 00:00:00
68    2017-10-03 00:00:00
69    2017-09-03 00:00:00
70    2017-09-03 00:00:00
71    2017-09-03 00:00:00
72    2017-09-03 00:00:00
Run Code Online (Sandbox Code Playgroud)

这意味着,熊猫没有正确解析日期和时间:

10/3/17 -> 2017-10-03
Run Code Online (Sandbox Code Playgroud)

当我尝试指定格式时:

df.Date = pd.to_datetime(df.Date, format='%d%m%Y')
Run Code Online (Sandbox Code Playgroud)

得到了错误:

ValueError: time data u'13/03/2017' does not match format '%d%m%Y' (match)
Run Code Online (Sandbox Code Playgroud)

题:

如何从Excel文件正确导入日期和时间到熊猫?

excel datetime pandas

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

如何使用Colaboratory(谷歌)从谷歌驱动器读取数据

我是Colaboratory的新手,想要设置一个存储在我的谷歌硬盘上的小项目.在我的谷歌硬盘上,我创建了一个文件夹'TheProject',在那里我创建了两个文件夹:'code'和'data'.我的文件夹'代码'我创建了一个新的colab笔记本,我在'data'文件夹中有几个数据集.

如何从谷歌硬盘上的文件夹中将数据读入colab笔记本?例如:

data = pd.read_excel('SOME_PATH/TheProject/data/my_data.xlsx')
Run Code Online (Sandbox Code Playgroud)

其中SOME_PATH应指示如何进入主文件夹'TheProject'并从'data'文件夹中读取数据.

python google-drive-api jupyter-notebook

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