有没有办法不用写 for 循环就可以做到这一点?
假设我们有以下数据:
d = {'A': {-1: 0.19052041339798062,
0: -0.0052531481871952871,
1: -0.0022017467720961644,
2: -0.051109629013311737,
3: 0.18569441222621336},
'B': {-1: 0.029181417300734112,
0: -0.0031021862533310743,
1: -0.014358516787430284,
2: 0.0046386615308068877,
3: 0.056676322314857898},
'C': {-1: 0.071883343375205785,
0: -0.011930096520251999,
1: -0.011836365865654104,
2: -0.0033930358388315237,
3: 0.11812543193496111},
'D': {-1: 0.17670604006475121,
0: -0.088756293654161142,
1: -0.093383245649534194,
2: 0.095649943383654359,
3: 0.51030339029516592},
'E': {-1: 0.30273513342295627,
0: -0.30640233455497284,
1: -0.32698263145105921,
2: 0.60257484810641992,
3: 0.36859978928328413},
'F': {-1: 0.25328469046380131,
0: -0.063890702001567143,
1: -0.10007720832198815,
2: 0.08153164759036724,
3: 0.36606175240021183},
'G': {-1: 0.28764606940509913,
0: -0.11022209861109525,
1: -0.1264164305949009,
2: 0.17030074112227081,
3: 0.30100292424380881}}
df = pd.DataFrame(d)
我知道我可以通过 std_vals = df.std() 获取标准值,它给出以下结果,并使用这些值一一删除列。
In[]:
pd.DataFrame(d).std()
Out[]:
A 0.115374
B 0.028435
C 0.059394
D 0.247617
E 0.421117
F 0.200776
G 0.209710
dtype: float64
但是,我不知道如何使用 Pandas 索引直接删除标准值较低的列。
有没有办法做到这一点,或者我需要遍历每一列?
最佳答案
您可以使用数据框的 loc 方法根据 bool 索引器选择某些列。像这样创建索引器(使用 Numpy 数组广播将条件应用于每一列):
df.std() > 0.3
Out[84]:
A False
B False
C False
D False
E True
F False
G False
dtype: bool
然后调用loc,在第一个位置加上:,表示要返回所有行:
df.loc[:, df.std() > .3]
Out[85]:
E
-1 0.302735
0 -0.306402
1 -0.326983
2 0.602575
3 0.368600
关于python - 在 Pandas Dataframe 中删除具有低标准偏差的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799187/
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
查看Ruby的CSV库的文档,我非常确定这是可能且简单的。我只需要使用Ruby删除CSV文件的前三列,但我没有成功运行它。 最佳答案 csv_table=CSV.read(file_path_in,:headers=>true)csv_table.delete("header_name")csv_table.to_csv#=>ThenewCSVinstringformat检查CSV::Table文档:http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html
我发现ActiveRecord::Base.transaction在复杂方法中非常有效。我想知道是否可以在如下事务中从AWSS3上传/删除文件:S3Object.transactiondo#writeintofiles#raiseanexceptionend引发异常后,每个操作都应在S3上回滚。S3Object这可能吗?? 最佳答案 虽然S3API具有批量删除功能,但它不支持事务,因为每个删除操作都可以独立于其他操作成功/失败。该API不提供任何批量上传功能(通过PUT或POST),因此每个上传操作都是通过一个独立的API调用完成的
我正在使用Rails3.1并在一个论坛上工作。我有一个名为Topic的模型,每个模型都有许多Post。当用户创建新主题时,他们也应该创建第一个Post。但是,我不确定如何以相同的形式执行此操作。这是我的代码:classTopic:destroyaccepts_nested_attributes_for:postsvalidates_presence_of:titleendclassPost...但这似乎不起作用。有什么想法吗?谢谢! 最佳答案 @Pablo的回答似乎有你需要的一切。但更具体地说...首先改变你View中的这一行对此#
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。
我想使用spawn(针对多个并发子进程)在Ruby中执行一个外部进程,并将标准输出或标准错误收集到一个字符串中,其方式类似于使用Python的子进程Popen.communicate()可以完成的操作。我尝试将:out/:err重定向到一个新的StringIO对象,但这会生成一个ArgumentError,并且临时重新定义$stdxxx会混淆子进程的输出。 最佳答案 如果你不喜欢popen,这是我的方法:r,w=IO.pipepid=Process.spawn(command,:out=>w,:err=>[:child,:out])
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht