嵌套属性由'data'字段给出.简而言之:我有一个参与者列表(由'participant_id'表示),他们在不同时间提交了回复('数据').我需要创建宽数据框,每个时间戳的每个参与者都有一行数据记录('q1','q2',...,'summary')
提前谢谢了!
我需要计算每行沿 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) 有没有一种简单的方法可以根据某种模式在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) 我需要类似的东西
.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')的位置未知.
任务是删除包含至少一个特定字母的所有行
给出以下示例:
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]
我需要通过属性将数据框随机分成两个不相交的集合'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) 我有一个特定单词列表('令牌'),需要在纯文本中找到所有这些单词(如果有的话).我更喜欢使用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) 我正在尝试清除列表,删除重复项.例如:
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)
我尝试了什么:
拆分列表并删除重复项(一种天真的方法)
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)
Counter(['Gppe (Aspirin Combined)', 'Gppe Cap (Migraine)', 'Gppe Tab').most_common(1)[0][0]
但我不确定如何找到类似的单词(一组)?
我想知道,是否可以使用一种'groupby()'和第一组按名称,然后删除这些名称中的重复项.
我正在导入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文件正确导入日期和时间到熊猫?
我是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'文件夹中读取数据.