小编mat*_*mar的帖子

使用Pandas groupby连接多行中的字符串

我想基于Pandas中的分组来合并数据帧中的几个字符串.

到目前为止这是我的代码:

import pandas as pd
from io import StringIO

data = StringIO("""
"name1","hej","2014-11-01"
"name1","du","2014-11-02"
"name1","aj","2014-12-01"
"name1","oj","2014-12-02"
"name2","fin","2014-11-01"
"name2","katt","2014-11-02"
"name2","mycket","2014-12-01"
"name2","lite","2014-12-01"
""")

# load string as stream into dataframe
df = pd.read_csv(data,header=0, names=["name","text","date"],parse_dates=[2])

# add column with month
df["month"] = df["date"].apply(lambda x: x.month)
Run Code Online (Sandbox Code Playgroud)

我希望最终结果如下所示:

在此输入图像描述

我不知道如何使用groupby并在"text"列中应用某种字符串串联.任何帮助赞赏!

python-3.x pandas

32
推荐指数
6
解决办法
4万
查看次数

将值分配给 Pandas DataFrame 中的范围

菜鸟问题。我想为 Pandas DataFrame 的定义切片分配一个值,但我无法从警告文本中找出错误消息指向如何实际正确执行此操作。

错误消息:SettingWithCopyWarning:正在尝试在 DataFrame 切片的副本上设置值

请参阅文档中的警告:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

我的失败代码:

df.ix[0]["points"] = 1
df.ix[1:2]["points"] = 2
df.ix[3:8]["points"] = 3
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

更新:

正如@Delforge 下面评论的那样,以下工作有效:

df.loc[0, ("points")] = 1
df.loc[1:2, ("points")] = 2
Run Code Online (Sandbox Code Playgroud)

python pandas

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

使用Python Requests库将unicode字符串发布到Web服务

我正在尝试使用请求库将包含花哨的unicode符号的文本片段发布到Web服务.我正在使用Python 3.5.

text = "Två dagar kvar"
r = requests.post("http://json-tagger.herokuapp.com/tag", data=text)
print(r.json()
Run Code Online (Sandbox Code Playgroud)

我得到一个UnicodeEncodeError,但我无法弄清楚我在做什么我做错了,请求的文档只讨论我看到的GET请求中的unicode.

    UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-125-3ebcae3d7918> in <module>()
     19         print("cleaned : " + line)
     20 
---> 21         r = requests.post("http://json-tagger.herokuapp.com/tag", data=line)
     22         sentences = r.json()['sentences']
     23         for sentence in sentences:

//anaconda/lib/python3.4/site-packages/requests/api.py in post(url, data, json, **kwargs)
    105     """
    106 
--> 107     return request('post', url, data=data, json=json, **kwargs)
    108 
    109 

//anaconda/lib/python3.4/site-packages/requests/api.py in request(method, url, **kwargs)
     51     # cases, and look like a memory leak in …
Run Code Online (Sandbox Code Playgroud)

unicode post utf-8 httprequest python-3.x

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

添加边缘属性会导致TypeError:“ AtlasView”对象不支持项目分配

使用networkx 2.0,我尝试通过遍历所有边缘来动态添加其他边缘属性。该图是一个MultiDiGraph。

根据教程,似乎可以按照下面的代码添加边属性:

g = nx.read_gpickle("../pickles/" + gname)
yearmonth = gname[:7]
g.name = yearmonth  # works
for source, target in g.edges():
    g[source][target]['yearmonth'] = yearmonth
Run Code Online (Sandbox Code Playgroud)

此代码引发以下错误:

TypeError: 'AtlasView' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

networkx

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

标签 统计

pandas ×2

python-3.x ×2

httprequest ×1

networkx ×1

post ×1

python ×1

unicode ×1

utf-8 ×1