在下面的所有示例中,我都使用了Pandas0.8.1,但我可以确认,当我使用Pandas 0.11时,相同的示例对我来说是一样的。
依赖于将Pandas版本更改为较新版本的解决方案不适用于我当前的问题(尽管请随意添加评论(而不是答案)来说明是否在新的Pandas版本中修复了这个问题)。
我有一个Pandas DataFrame对象示例
In [20]: dfrm
Out[20]:
A B C D
0 1.202034 -0.285256 0.392160 0
1 1.799628 -0.169389 -0.305984
我有两个dataframe,我想使用其中一个数据过滤另一个,并创建一个新的dataframe。这两个数据格式都有一个包含类似信息的列,但并不完全匹配。我一直在尝试使用str.contains,但到目前为止,我一直在尝试使用TypeError: 'Series' objects are mutable, thus they cannot be hashed。下面是我的数据文件和我尝试过的代码的示例。
promoter = pd.read_csv('promoter_coordinate.csv')
print(promoter.head())
Associate
我有一个Pandas DataFrame,包含i、行和j列。我希望将这个DataFrame中的值替换为第二个DataFrame中的所有值,后者具有相同的i行,但有k列,其中k是j的子集。
有效的办法是:
for col in df2.columns:
df1[col] = df2[col]
有没有一种更快、更无头绪的方法?
我正试着比较熊猫的两栏。我知道我能做到:
# either using Pandas' equals()
df1[col].equals(df2[col])
# or this
df1[col] == df2[col]
但是,我要寻找的是比较这些列的大小,当它们不匹配时,打印出这两个值。我试过:
if df1[col] != df2[col]:
print(df1[col])
print(df2[col])
当我得到“序列的真值是模棱两可”的错误时,我相信这是因为列被当作一系列布尔值来进行比较,这就导致了歧义。我还尝试了各种形式的for循环,但没有解决这个问题。有人能指
假设我有一个数据帧:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.rand(4,5), columns = list('abcde'))
我想从所有其他列中减去列df.a中的条目。换句话说,我想要得到一个数据帧,它包含以下列为列:
col_b - col_a| col_c - col_a |col_d - col_a
我尝试过df - df.a,但这产生了一些奇怪的结果:
0 1 2 3 a b c d e
0 NaN NaN NaN NaN NaN
如果我将python dataframe转换为r dataframe,则使用:
设置
import rpy2.robjects as ro
from rpy2.robjects.vectors import ListVector, DataFrame
from rpy2.robjects import numpy2ri, pandas2ri
from rpy2.robjects.conversion import localconverter
from rpy2.robjects.packages import importr
base = importr("base")
##
我有两个pandas数据帧,每个都有相同的索引和列。我想创建第三个pandas数据帧,其中包含其他两个细胞的乘积。 这是我目前的解决方案,但它太慢了。 import pandas as pd
new_df = pd.DataFrame(columns=df1.columns, index=df1.index, data=[])
for col, values in new_df.iteritems():
for idx, value in values.iteritems():
foo = df1.loc[idx][col]
bar = df2.l
我刚开始学习Python和Pandas,在许多教程中我看到了iloc函数的使用。人们总是说,您可以使用这个函数来引用dataframe中的列和行。但是,您也可以不使用iloc函数直接这样做。下面是一个输出相同的例子:
# features is just a dataframe with several rows and columns
features = pd.DataFrame(features_standardized)
y_train = features.iloc[start:end] [[1]]
y_train_noIloc = features [start:end] [[1
我正在将新工作簿中的两列与工作簿2中的两列相匹配,然后从Workbook2检索列B并将其复制到新工作簿中的列B。有些单元格将是空的。运行以下代码不会导致任何内容被复制。我不确定我是否使用了正确的方法来检索信息。
Sub InsertDeviceName_NewBook()
Dim w1 As Worksheet, w2 As Worksheet, wsnew As Worksheet
Dim wbnew As Workbook
Dim c As Range, FR As Variant
Dim d As Range
Dim
下面的代码读取一列(名为"First")并查找字符串"TOM“。 我想要遍历文件中的所有列(而不仅仅是“第一”列)-我想做一些类似excelFilei的事情,其中i和j被设置在一个循环中,但这不起作用。有什么想法吗? import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
import re
excelFile=pd.read_excel("test.xls")
for i in excelFile.index:
match=re.match(&
我的dataframe中有Data2列。我试图通过向NewCol列应用一个筛选器来创建一个新列(‘Data2’)。下面的代码工作,新列的结果是正确的。但在运行代码时,我会得到以下错误消息。我怎么才能解决这个问题?我认为这会影响性能。
C:\Python27\lib\site-packages\IPython\kernel__main__.py:2: SettingWithCopyWarning:值试图在来自DataFrame的片的副本上设置。
请参阅文档中的注意事项:
# In[1]:
import pandas as pd
import numpy as np
from pandas im
我正在尝试创建一个新列,用于比较两个列表并返回匹配的字符串。
我一直收到错误消息"'list‘对象没有’find‘属性“。
我在这方面还是个新手,所以任何帮助都将不胜感激!
我正在尝试使用python和pandas来实现这一点
到目前为止,我所拥有的是
raw = pd.read_csv(r"")
brandnames = ['Amana','Maytag']
raw['Brands'] = [k for k in raw['Description'] if brandnames.find(k)]
我是Python/Pandas的新手,正在努力从pd.Dataframe中提取正确的数据。我实际拥有的是一个包含3列的Dataframe:
data =
Position Letter Value
1 a TRUE
2 f FALSE
3 c TRUE
4 d TRUE
5 k FALSE
我想要做的是将所有真正的行放入一个新的Dataframe中,这样答案将是:
answer =
Position Letter Value
1 a TRUE
3
在Excel中,我有两列等于第三列。如何使前两者相互对应?下面列出的是一个小示例。抱歉,我不知道如何正确地将Excel粘贴到这篇文章中。如您所见,我有标题为UPC、Barcode、RMSID、UPC和Barcode的A-E列。列A和D是UPC的相同值。B和C都对应于UPC列,或者A和D。我希望B和C彼此对应,因为它们都共享A或D的值。因此,如果C和D彼此对应,那么B也对应,我希望在E列中显示这一点。如何在Excel中编写这段代码?
A B C D E
UPC Barcode RMSID UPC
我想计算一个分组的pandas dataframe列中字符串的出现次数。
假设我有以下数据帧:
catA catB scores
A X 6-4 RET
A X 6-4 6-4
A Y 6-3 RET
B Z 6-0 RET
B Z 6-1 RET
首先,我想按catA和catB分组。对于这些组中的每个组,我希望在scores列中计算RET的出现次数。
结果应该如下所示:
catA catB RET
A X 1
A