最近我从Windows 8.1升级到Windows 10.虽然Windows说它没有改变我的文件和文件夹,但事实并非如此.开始菜单中的Anaconda文件夹中只有一个快捷方式.这是Anaconda Prompt,所以我想我只是运行以下命令来修复我的链接:
conda update conda -f
conda update anaconda -f
Run Code Online (Sandbox Code Playgroud)
虽然这返回了一些链接,但它并没有恢复一切,这意味着我被困在一个功能失调的Anaconda安装.
我的目标是找出某些关键字组合是否可以出现在填充了文本字符串(新闻文章的标题)的列中。然后我想在条形图中绘制频率。
我使用熊猫数据框完成了以下操作:
pvv_news = df[df['desc'].str.contains("pvv", case=True)]
pvv_month = win.groupby(win.index.month).size()
pvv_month.index = ['January', 'February', 'March', 'April', 'May', 'June']
pvv_month.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)
这使:
现在,我无法弄清楚如何组合 AND 和 OR 以获得更具体的结果。我想到的但不起作用的例子:
pvv_news = df[df['desc'].str.contains("(pvv)&(nederland|overheid)", case=True)]
Run Code Online (Sandbox Code Playgroud)
我查看了以下功能,但无法弄清楚:
我正在尝试计算数据框列中的单个单词.看起来像这样.实际上,文本是推文.
text
this is some text that I want to count
That's all I wan't
It is unicode text
Run Code Online (Sandbox Code Playgroud)
所以我从其他stackoverflow问题中发现的是我可以使用以下内容:
从Dataframe Pandas中的句子中计算最频繁的100个单词
我的df叫做结果,这是我的代码:
from collections import Counter
result2 = Counter(" ".join(result['text'].values.tolist()).split(" ")).items()
result2
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError Traceback (most recent call last)
<ipython-input-6-2f018a9f912d> in <module>()
1 from collections import Counter
----> 2 result2 = Counter(" ".join(result['text'].values.tolist()).split(" ")).items()
3 result2
TypeError: sequence item 25831: expected str instance, float found
Run Code Online (Sandbox Code Playgroud)
文本的dtype是object,根据我的理解,对于unicode文本数据是正确的.
给出以下数据帧:
import pandas as pd
p1 = {'name': 'willy', 'age': 11, 'interest': "Lego"}
p2 = {'name': 'willy', 'age': 11, 'interest': "games"}
p3 = {'name': 'zoe', 'age': 9, 'interest': "cars"}
df = pd.DataFrame([p1, p2, p3])
df
age interest name
0 11 Lego willy
1 11 games willy
2 9 cars zoe
Run Code Online (Sandbox Code Playgroud)
我想知道每个人的利益总和,并让每个人只在列表中显示一次.我做以下事情:
Interests = df[['age', 'name', 'interest']].groupby(['age' , 'name']).count()
Interests.reset_index(inplace=True)
Interests.sort('interest', ascending=False, inplace=True)
Interests
age name interest
1 11 willy 2
0 9 zoe 1
Run Code Online (Sandbox Code Playgroud)
这有效,但我觉得我做错了.现在我正在使用列'兴趣'来显示我的总和值,这是可以的,但就像我说我希望有更好的方法来做到这一点.
我在熊猫中看到了许多关于计算/总和的问题,但对我而言,我忽略了"重复"的部分是关键.
我的熊猫数据框包含推文和每个推文(300.000行)的元数据。我的一些同事需要在Excel中使用此数据,这就是为什么我需要导出它的原因。
我想使用熊猫提供的一个.to_csv
或.to_excel
两个,但我无法使其正常工作。
当我使用.to_csv
我的问题时,它一直在数据框的文本部分中失败。我使用了不同的分隔符,但文件从未100%对齐。文本列似乎包含制表符,竖线字符等,这会使Excel感到困惑。
df.to_csv('test.csv', sep='\t', encoding='utf-8')
Run Code Online (Sandbox Code Playgroud)
当我尝试.to_excel
与xlsxwriter
引擎一起使用时,我遇到了一个不同的问题,那就是我的文本列包含许多URL(我认为)。xlswriter
尝试对这些URL进行特殊的可点击链接,而不仅仅是将它们作为字符串处理。我找到了一些有关如何避免这种情况的信息,但是同样,我无法使它正常工作。
以下代码段应用于禁用我认为会引起麻烦的功能:
workbook = xlsxwriter.Workbook(filename, {'strings_to_urls': False})
Run Code Online (Sandbox Code Playgroud)
但是,在使用时,在to_excel
将数据框加载到Excel文件之前,似乎无法调整Workbook对象的此设置。
简而言之,我如何将列的文本从Pandas数据框中导出到Excel可以理解的东西呢?
编辑: 例如:
@geertwilderspvv @telegraaf ach Wilders toch, nep-voorzitter van een nep-partij met maar één lid, \nzeur niet over nep-premier of parlement!
Run Code Online (Sandbox Code Playgroud)
因此,在这种情况下,显然是行车制动器是我的数据。我将尝试查找更多示例。
编辑2:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error047600_01.xml</logFileName><summary>Er zijn fouten aangetroffen in bestand C:\Users\Guy Mahieu\Desktop\Vu ipython notebook\pandas_simple.xlsx</summary><removedRecords summary="Hier volgt een lijst van verwijderde records:"><removedRecord>Verwijderde records: Formule van het onderdeel /xl/worksheets/sheet1.xml</removedRecord></removedRecords></recoveryLog> …
Run Code Online (Sandbox Code Playgroud) 我正在将Twitter数据(推文+元数据)收集到MongoDB服务器中。现在我想做一些统计分析。为了将数据从MongoDB获取到Pandas数据框中,我使用了以下代码:
cursor = collection.find({},{'id': 1, 'text': 1})
tweet_fields = ['id', 'text']
result = pd.DataFrame(list(cursor), columns = tweet_fields)
Run Code Online (Sandbox Code Playgroud)
这样,我成功地将数据加载到了Pandas中,这很棒。现在,我想对创建推文的用户进行一些分析,这些推文也是我收集的数据。此数据位于JSON的嵌套部分中(我不确定100%是否为true JSON),例如user.id(这是Twitter用户帐户的ID)。
我可以使用点符号将其添加到光标中:
cursor = collection.find({},{'id': 1, 'text': 1, 'user.id': 1})
Run Code Online (Sandbox Code Playgroud)
但这会导致该列的NaN。我发现问题在于数据的结构方式:
没有user.id的游标位:
[{'_id': ObjectId('561547ae5371c0637f57769e'),
'id': 651795711403683840,
'text': 'Video: Zuuuu gut! Caro Korneli besucht für extra 3 Pegida Via KFMW http://t.co/BJX5GKrp7s'},
{'_id': ObjectId('561547bf5371c0637f5776ac'),
'id': 651795781557583872,
'text': 'Iets voor werkloze xenofobe PVV-ers, (en dat zijn waarschijnlijk wel de meeste).........Ze zoeken bij Frontex een paar honderd grenswachten.'},
{'_id': ObjectId('561547ab5371c0637f57769c'),
'id': 651795699881889792,
'text': 'RT @ansichtssache47: Geht …
Run Code Online (Sandbox Code Playgroud)