小编jez*_*ael的帖子

Pandas数据帧 - 运行与重置的总和

我想计算给定列中的运行总和(当然不使用循环).需要注意的是,我有另一列指定何时将运行总和重置为该行中存在的值.最佳解释如下:

   reset  val   desired_col
0      0    1   1
1      0    5   6
2      0    4   10
3      1    2   2
4      1   -1   -1
5      0    6   5
6      0    4   9
7      1    2   2
Run Code Online (Sandbox Code Playgroud)

desired_col 是我想要计算的值.

python multiple-columns dataframe pandas cumsum

19
推荐指数
1
解决办法
5518
查看次数

将Python中的每个单词的首字母大写

如何将列中每个单词的首字母大写?我顺便使用python pandas.例如,

         Column1
         The apple
         the Pear
         Green tea
Run Code Online (Sandbox Code Playgroud)

我的愿望结果将是:

         Column1
         The Apple
         The Pear
         Green Tea
Run Code Online (Sandbox Code Playgroud)

python string capitalization dataframe pandas

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

使用多个分隔符提取文本

我有分隔符的字符串列表AB:

L = ['sgfgfqds A aaa','sderas B ffff','eeee','sdsdfd A rrr']
Run Code Online (Sandbox Code Playgroud)

并需要:

L1 = [['aaa'], ['ffff'], ['eeee'], ['rrr']] 
Run Code Online (Sandbox Code Playgroud)

我试过用:

L1 = [re.findall(r'(?<=A)(.*)$', inputtext) for inputtext in L]
print (L1)
Run Code Online (Sandbox Code Playgroud)

但是,它返回以下内容:

[[' aaa'], [], [], [' rrr']] 
Run Code Online (Sandbox Code Playgroud)

如何获得所需的输出?

python regex string list

18
推荐指数
3
解决办法
1937
查看次数

嵌套列表到dict

我尝试dict通过嵌套创建list:

groups = [['Group1', 'A', 'B'], ['Group2', 'C', 'D']]

L = [{y:x[0] for y in x if y != x[0]} for x in groups]
d = { k: v for d in L for k, v in d.items()}

print (d)
{'B': 'Group1', 'C': 'Group2', 'D': 'Group2', 'A': 'Group1'}
Run Code Online (Sandbox Code Playgroud)

但它似乎有点复杂.

有更好的解决方案吗?

python dictionary list-comprehension list

18
推荐指数
4
解决办法
4528
查看次数

将Json文件读取为Pandas Dataframe错误

我有一个Json文件如下.这是一个dicts列表.

[{"city": "ab", "trips": 4, "date": "2014-01-25", "value": 4.7, "price": 1.1, "request_date": "2014-06-17", "medium": "iPhone", "%price": 15.4, "type": true, "Weekly_pct": 46.2, "avg_dist": 3.67, "avg_price": 5.0}, {"city": "bc", "trips": 0, "date": "2014-01-29", "value": 5.0, "price": 1.0, "request_date": "2014-05-05", "medium": "Android", "%price": 0.0, "type": false, "weekly_pct": 50.0, "avg_dist": 8.26, "avg_price": 5.0}.....]
Run Code Online (Sandbox Code Playgroud)

当我用这个读到这个:

data=pd.read_json('dataset.json')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ValueError:预期的对象或值

我也试过这个:

from ast import literal_eval

with open('dataset.json') as f:
    data = literal_eval(f.read())

df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

它给出以下错误:

ValueError:格式错误的字符串

编辑:

即使Json.loads也行不通.试过这个:

import json
data=json.loads('dataset.json')
Run Code Online (Sandbox Code Playgroud)

ValueError:无法解码JSON对象

Json文件是13.5MB,但它似乎有大量的数据.

python json pandas

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

熊猫最大值指数

我有一个Pandas DataFrame,混合了屏幕名称,推文,收藏等.我想找到'favcount'的最大值(我已经做过)并且还返回'tweet'的屏幕名称

df = pd.DataFrame()
df['timestamp'] = timestamp
df['sn'] = sn
df['text'] = text
df['favcount'] = fav_count


print df
print '------'
print df['favcount'].max()
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到任何相关内容,任何人都可以帮助指导我朝着正确的方向前进吗?

python twitter indexing max pandas

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

通过在两个现有列上使用lambda函数在Panda中创建新列

我可以通过定义用户函数然后使用apply在Panda中添加一个新列.但是,我想用lambda做到这一点; 有办法吗?

例如,df有两列ab.我想创建一个新列c,它等于a和之间的最长长度b.

就像是:

df['c'] = df.apply(lambda x, len(df['a']) if len(df['a']) > len(df['b']) or len(df['b']) )
Run Code Online (Sandbox Code Playgroud)

一种方法:

df = pd.DataFrame({'a':['dfg','f','fff','fgrf','fghj'], 'b' : ['sd','dfg','edr','df','fghjky']})

df['c'] = df.apply(lambda x: max([len(x) for x in [df['a'], df['b']]]))
print df
      a       b   c
0   dfg      sd NaN
1     f     dfg NaN
2   fff     edr NaN
3  fgrf      df NaN
4  fghj  fghjky NaN
Run Code Online (Sandbox Code Playgroud)

python lambda calculated-columns multiple-columns pandas

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

如何用1替换数据帧的所有非NaN条目,用0替换所有NaN

我有一个71列和30597行的数据帧.我想用1替换所有非nan条目,用0替换nan值.

最初,我尝试对数据帧的每个值进行for循环,这花费了太多时间.

然后我使用了data_new = data.subtract(data),这意味着将数据帧的所有值减去它自己,这样我就可以使所有非空值为0.但是由于数据帧有多个字符串条目,所以发生错误.

python dataframe pandas

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

如何从pandas数据框中删除方括号

list在应用str.findall()到pandas数据帧的列之后,我想出了方括号中的值(更像是a ).如何拆下方括号?

print df

id     value                 
1      [63]        
2      [65]       
3      [64]        
4      [53]       
5      [13]      
6      [34]  
Run Code Online (Sandbox Code Playgroud)

python string dataframe pandas

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

如何使用熊猫分组计算时差?

问题

我想diff按小组计算.我不知道如何对time列进行排序,以便每个组的结果都是排序的和正面的.

原始数据:

In [37]: df 
Out[37]:
  id                time
0  A 2016-11-25 16:32:17
1  A 2016-11-25 16:36:04
2  A 2016-11-25 16:35:29
3  B 2016-11-25 16:35:24
4  B 2016-11-25 16:35:46
Run Code Online (Sandbox Code Playgroud)

我想要的结果

Out[40]:
   id   time
0  A   00:35
1  A   03:12
2  B   00:22
Run Code Online (Sandbox Code Playgroud)

注意:时间col的类型是timedelta64 [ns]

In [38]: df['time'].diff(1)
Out[38]:
0                 NaT
1            00:03:47
2   -1 days +23:59:25
3   -1 days +23:59:55
4            00:00:22
Name: time, dtype: timedelta64[ns]
Run Code Online (Sandbox Code Playgroud)

没有得到理想的结果.

希望

不仅解决问题,而且代码可以快速运行,因为有5000万行.

python sorting timedelta pandas difference

16
推荐指数
1
解决办法
7571
查看次数