我想看看我的数据帧中的特定列中是否存在特定字符串.
我收到了错误
ValueError:Series的真值是不明确的.使用a.empty,a.bool(),a.item(),a.any()或a.all().
import pandas as pd
BabyDataSet = [('Bob', 968), ('Jessica', 155), ('Mary', 77), ('John', 578), ('Mel', 973)]
a = pd.DataFrame(data=BabyDataSet, columns=['Names', 'Births'])
if a['Names'].str.contains('Mel'):
print "Mel is there"
Run Code Online (Sandbox Code Playgroud) 我有两个共享项目编号的独立数据框.在type_df
,项目编号是索引.在time_df
,项目编号是一列.我想计数的行数中type_df
有一个Project Type
的2
.我正试图这样做pandas.merge()
.它在使用两列时效果很好,但不是索引.我不确定如何引用索引,如果merge
是正确的方法来做到这一点.
import pandas as pd
type_df = pd.DataFrame(data = [['Type 1'], ['Type 2']],
columns=['Project Type'],
index=['Project2', 'Project1'])
time_df = pd.DataFrame(data = [['Project1', 13], ['Project1', 12],
['Project2', 41]],
columns=['Project', 'Time'])
merged = pd.merge(time_df,type_df, on=[index,'Project'])
print merged[merged['Project Type'] == 'Type 2']['Project Type'].count()
Run Code Online (Sandbox Code Playgroud)
错误:
名称"索引"未定义.
期望的输出:
2
Run Code Online (Sandbox Code Playgroud) 我想将所有数据丢弃在pandas数据框中,但我得到了TypeError: drop() takes at least 2 arguments (3 given)
.我本质上想要一个只有我的列标题的空白数据框.
import pandas as pd
web_stats = {'Day': [1, 2, 3, 4, 2, 6],
'Visitors': [43, 43, 34, 23, 43, 23],
'Bounce_Rate': [3, 2, 4, 3, 5, 5]}
df = pd.DataFrame(web_stats)
df.drop(axis=0, inplace=True)
print df
Run Code Online (Sandbox Code Playgroud) 我有一个Pandas
dataframe
,叫output
.基本的问题是我想dataframe
使用ix
函数在列表中设置一个特定的行,列并且我得到了ValueError: setting an array element with a sequence.
我的理解是一个dataframe
元素就像一个列表元素,它可以保存任何东西(字符串,列表,元组等) ).我不对吗?
基本设置:
import pandas as pd
output = pd.DataFrame(data = [[800.0]], columns=['Sold Count'], index=['Project1'])
print output.ix['Project1', 'Sold Count']
>>>800
Run Code Online (Sandbox Code Playgroud)
工作良好
output.ix['Project1', 'Sold Count'] = 400.0
print output.ix['Project1', 'Sold Count']
>>>400.0
Run Code Online (Sandbox Code Playgroud)
不起作用
output.ix['Project1', 'Sold Count'] = [400.0]
print output.ix['Project1', 'Sold Count']
>>>ValueError: setting an array element with a sequence.
Run Code Online (Sandbox Code Playgroud) 我试图int
在Pandas
DataFrame
with中 添加一个现有值
>>> df.ix['index 5','Total Dollars'] += 10
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ValueError: Must have equal len keys and value when setting with an iterable
.
我认为错误来自datatype
于:
>>> print type(df.ix['index 5','Total Dollars']
int64 <class 'pandas.core.series.Series'>
Run Code Online (Sandbox Code Playgroud)
数据框通过CSV文件填充.我尝试从另一个CSV文件加载数据库:
>>> print type(df.ix['index 5','Total Dollars']
int64
Run Code Online (Sandbox Code Playgroud)
什么可能导致这种类型的差异?
我正在使用Dropzone.js
允许CSV
通过Flask
网站拖放文件上传.上传过程非常有效.我将上传的文件保存到我指定的文件夹,然后可以df.to_html()
用来转换dataframe
成HTML
代码,然后传递给我的模板.它到达代码中的那一点,但它不呈现模板并且不会抛出任何错误.所以我的问题是为什么Dropzone.js
阻止渲染发生?
我也试过HTML
从表中返回代码而不是使用render_template
,但这也行不通.
init .py
import os
from flask import Flask, render_template, request
import pandas as pd
app = Flask(__name__)
# get the current folder
APP_ROOT = os.path.dirname(os.path.abspath(__file__))
@app.route('/')
def index():
return render_template('upload1.html')
@app.route('/upload', methods=['POST'])
def upload():
# set the target save path
target = os.path.join(APP_ROOT, 'uploads/')
# loop over files since we allow multiple files
for file in request.files.getlist("file"):
# get the …
Run Code Online (Sandbox Code Playgroud) 我有一个公式iferror公式,如果发生错误,放入"".这是一个零长度的字符串.如果不等于"",我想做一个计数.
=countif(A:A,<>"") 'is not a valid formulas
=countif(A:A,"<>") 'checks for actual blanks, not zero length strings
Run Code Online (Sandbox Code Playgroud) 我有一个项目列表:
mylist = ['A','A','B','C','D','E','D']
Run Code Online (Sandbox Code Playgroud)
我想返回一个在mylist中出现多次的唯一项目列表,以便我所需的输出为:
[A,D]
Run Code Online (Sandbox Code Playgroud)
不知道如何成为这个,但我的过程是首先附加每个项目的计数,然后删除任何等于1的东西.然后重复数据删除,但这似乎是一个非常迂回,低效的方式来做,所以我在寻找咨询.
我有一个非常简单的Pandas
dataframe
地方,每个单元格包含一个列表.我想将列表中的每个元素拆分为它自己的列.我可以通过导出值然后创建新值来实现dataframe
.这似乎不是一个好方法,特别是如果我dataframe
在列表列之外有一个列.
import pandas as pd
df = pd.DataFrame(data=[[[8,10,12]],
[[7,9,11]]])
df = pd.DataFrame(data=[x[0] for x in df.values])
Run Code Online (Sandbox Code Playgroud)
期望的输出:
0 1 2
0 8 10 12
1 7 9 11
Run Code Online (Sandbox Code Playgroud)
基于@Psidom回复的后续行动:
如果我确实有第二列:
df = pd.DataFrame(data=[[[8,10,12], 'A'],
[[7,9,11], 'B']])
Run Code Online (Sandbox Code Playgroud)
我怎么不松开其他栏?
期望的输出:
0 1 2 3
0 8 10 12 A
1 7 9 11 B
Run Code Online (Sandbox Code Playgroud) 我编写了一个脚本,使用python和Selenium打开Web浏览器.使用以下代码,它适用于Firefox:
from selenium import webdriver
driver = webdriver.Firefox()
Run Code Online (Sandbox Code Playgroud)
当我用IE替换Firefox(我开始输入时的建议值),我收到消息 IEDriver executable needs to be available in the path.
from selenium import webdriver
driver = webdriver.IE()
Run Code Online (Sandbox Code Playgroud) python ×9
python-2.7 ×7
pandas ×6
countif ×1
csv ×1
dataframe ×1
dropzone.js ×1
excel ×1
flask ×1
javascript ×1
list ×1
merge ×1
numpy ×1
selenium ×1