如何将数据帧过滤为包含在列表中的值的行?具体地说,数据帧中的值将只是与列表的部分匹配,而不是完全匹配。
我尝试过使用pandas.DataFrame.isin,但只有在数据帧中的值与列表中的值相同时才有效。
list = ["123 MAIN STREET", "456 BLUE ROAD", "789 SKY DRIVE"]
df =
address
0 123 MAIN
1 456 BLUE
2 987 PANDA
target_df = df[df["address"].isin(list)
理想情况下,结
我有一个函数,它接受一个dataframe并返回一个(精简) dataframe,例如:
def transforming_data(dataframe, col_1, col_2, normalized = True):
''' takes in dataframe, groups col_1 according to col_2 and returns dataframe
'''
df = dataframe[col_1].groupby(dataframe[col_2]).value_counts(normalize
我正在尝试删除pandas数据帧中某个值后面的百分号,相关代码如下:
for i in loansdata:
if i.endswith('%'):
i = i[:-1]
我在想i= i:-1会设置新值,但它没有。我该怎么做呢?为了清楚起见:如果我在For循环中打印i,则打印时不带百分号。但是如果我打印整个数据帧,它并没有改变。
我正在尝试将numpy lambda函数转换为PySpark数据帧的等效函数。我一直在努力寻找正确的函数/方法。
我在一个Pandas数据帧上执行以下操作,为panda_stack生成一个新列label
panda_stack['label'] = panda_stack.groupby('id')['prob1'].transform(lambda x: 0.0 if all(np.isnan(x)) else 1.0)
基本上,我有:
id prob1
id1 NA
id1 0.12
id2 NA
并且想要:
id label
i
我不知道如何将数据添加到panda数据框中的列。
我有四个传感器,它们在四个线程中采样。我希望每个传感器将当前值附加到熊猫数据帧中的特定列。
例如:
我有一个只有头文件的.csv文件:
p1,p2,p3,c
我希望线程向列中添加一个值。因此,在第一个传感器上的第一个样本之后,数据帧将具有。
p1 p2 p3 c
3 NaN NaN NaN
然后,下一个传感器应添加如下所示的值
p1 p2 p3 c
3 5 NaN NaN
我已经搜索了追加,但我不知道代码应该是怎样的。
我正在从一个网站上抓取数据,所以我创建了一个for循环来从多个网页收集数据并生成单独的数据帧。但是,我不知道如何用不同的名称保存它们。
我首先创建了数据帧名称列表:
dataframe_names=[]
for i in range(0,50):
text='item'+str(i)
dataframe_names.append(text)
然后,我在创建数据帧的循环中包含了以下代码:
df=[name for name in dataframe_names]
预期的输出是从for循环创建的数据帧,并分别保存,如df1、df2、df3、.....df50。
然而
在这个数据帧的虚拟列表中,所有列名都有前缀和下划线。列表中的每个数据帧都有不同的前缀,但它们都包含一个下划线。
如何删除列表中所有数据帧的列名中的下划线和前面的文本?我可以单独做,但我真正的列表包含了更多的数据帧。谢谢
#add diferent prefixes to all col names
colnames(iris)<-paste('iris_',colnames(iris), sep='')
colnames(mtcars)<-paste('mt_',colnames(mtcars), sep='')
如何划分panda系列: d = {'a': ('a','ball'), 'b': ('b','cat'), 'c': ('c','plane')}
ser = pd.Series(data=d, index=['a', 'b', 'c'])
ser
a (a, ball)
b (b, cat)
c (c, plane)
dtype: object 变成熊猫数据帧,如下所示:
我对Python中的Panda dataframe非常陌生。我正在编写一段代码,其中的csv文件结构如下: Id, Title, Body, Tags, Date
1, First question, My first question, robot Python, 2015
2, Second question, My second question, C++ Python, 2015
3, Third question, My third question, Selenium, 2016
4, Fourth question, My fourth question, Java C++,
我想知道如何才能最有效地执行以下操作,以便还可以将其扩展到具有百万rows+的数据帧。我有两个panda数据帧:
Data1:
Position Letter
1 a
2 b
3 c
4 b
5 a
Data2:
Weight Letter
1 a
2 b
3 c
现在我想在数据1中创建一个额外的列(权重),结果如下:
Position Letter Weight
1 a 1
我需要找到与我在下面显示的两个panda系列中相同的数据,并将它们放入列表中,但列表中的一些输出显示了不止一次。如何更改代码,使输出只显示一次?这是我的2个panda系列的代码:
N= 10
data1 = []
for i in range(N):
data1.append(random.randint(1,10))
s1 = pd.Series(data1)
print('Panda Series 1:')
print(s1)
print()
# Creating the second panda series, s2
data2 = []
for i in rang
这个问题在这里已经有答案了 : 检测每个数据帧行与向量值之间的至少一个匹配 (4个答案) 矩阵索引函数 (2个答案) 昨天关门了。 我正在尝试使用which函数在我的数据帧中查找多个字符串。我试着将答案从 在data.frame中查找字符串 数据帧示例如下: 1 a five 10
2 b one 20
3 c three 30
4 two 30 horse
5 five horse eight
6 c five c 在这个数据帧上,当我对一个字符串应用which函数时,我得到了正确的输
我有两个不同的熊猫数据框架集。其中之一是术语列表;这些术语是字符串:
df_1
apple
panda
lecture
sky
green
另一列包含2列,其中一列是包含程序标题的字符串,而第二列包含该程序的标记列表。
df_2
Program Tags
Fruits of the World [what,apple,green,banana,kiwi]
Animal in the Zoo [panda,lion,eagle]
Lecture 1
我有一个问题,来自我的导入的数据帧(来自Yahoo的股票价格)在特定的时间段内不正确。我想清除"VAR1.DE“从2010-01-01到2017-10-17的数据,并将其替换为空或替换为NaN。我已经找到了panda函数"drop“,但这将删除hole列。 我该如何解决这个问题? 下面是我的代码: from pandas_datareader import data as web
import pandas as pd
import numpy as np
from datetime import datetime
assets = ['1211.HK',&
我有一本数据帧字典。对于字典的每个元素,我想在开头附加一个外部数据帧。 for x in dict_of_df:
x = df1.append(x) 在这个例子中,df1是一个永远不变的数据帧,我想把它附加到我的数据帧字典中每个数据帧的开头。然而,当我这样做时,它不会改变字典中的任何元素,然后返回一个名为x的随机数据帧,并在开头附加df1。为什么这个“棒”不会出现在字典的元素中呢?
我使用从CSV文件中填充的熊猫数据帧,然后使用Bokeh将该数据帧转换为ColumnDataSource。
看上去像是:
dataFrame = pandas.read_csv('somefile.CSV')
source = ColumnDataSource(dataFrame)
现在我有了所有的列,我想做基于行的计算。
例如:我有三列:
x, y, colour
它可能有以下内容:
1, 2, blue
2, 5, red
1, 8, yellow
现在,当我在源代码中搜索时,我想在该行中更改一些关联变量,那么我如何做到这一点:
# how do i step throug
对于panda数据帧,有很好的解决方案。但由于我主要使用numpy数组,我必须创建新的熊猫DataFrame对象,计算并转换回numpy数组,如下所示:
nomDF=pd.DataFrame(x_nominal) #Convert np.array to pd.DataFrame
nomDF=nomDF.apply(lambda x:x.fillna(x.value_counts().index[0])) #replace NaN with most frequent in each column
x_nominal=nomDF.values #convert back pd.DataFram