假设有人想要从数据帧中删除一列。可以在不创建新数据帧的情况下做到这一点吗?
df = df.drop("tags_s")
看起来创建一个新的数据帧更安全,更正确,对吗?通过重用如上所述的数据帧可能会遇到什么问题?
如果重用数据帧是一种糟糕的做法,假设有人想要删除几个与模式匹配的列:
for col in df.columns:
if col.startswith("aux_"):
df = df.drop(col)
在这种情况下,每次创建一个新的数据帧似乎不切实际。最佳实践是什么?
我使用NLTK在一个古老的Yelp竞赛中的熊猫数据帧中pos_tag语句。这将返回一个元组列表(word、POS)。我想计算一下每个实例的词性数量。比方说,我该如何创建一个函数来计算每次复习中存在的动词数量?我知道如何将函数应用于特性--这没问题。我就是想不通如何计算pd特性中列表的元组中的东西。
The head is here, as a tsv: https://pastebin.com/FnnBq9rf
我有一个数据帧:
Car Color
BMW WHITE
BMPrO Black
Toyota Green
Honda Black
我希望创建一个基于Car列的列,如果Car列以BM*开头,则ID列将是A如果Car列以T开头,则ID列将是B否则C
预期的数据帧
Car Color ID
BMW WHITE A
BMPrO Black A
Toyota Green B
Honda Black C
有谁有主意吗?
我已经尝试过这段代码,但在这种情况下不起作用:
def f(row):
我正在尝试根据一个因子(这里是ID)对数据帧进行子集。我想要的是基于因子级别的子集,从一个特定的字符开始。下面是一个数据帧示例:
ID = c("100", "100a", "101", "103", "204", "206", "207", "207a", "207b") # ID is a factor
Value = rnorm(9)
df = data.frame(ID, Value)
我希望得到两个独立的数据帧,一个ID以"1“开头
我使用的是pyspark 3.0.1。我想从我的pyspark数据帧df的列group中删除记录以2K开头的行。
我的样本数据如下所示
Name Age Group
John 23 1L12
Rami 32 2K18
Pat 35 1P28
删除后,我的最终数据帧应该如下所示
Name Age Group
John 23 1L12
Pat 35 1P28
我有一个由不同数据类型的45个变量组成的pandas数据框架,我正在使用'dython.nominal‘包来创建每个变量之间的关联矩阵。
然后我想:
答:子集我的数据帧(按地理位置过滤),并在该子集上计算关联矩阵,然后
B:使用在步骤A中创建的数据帧中的目标变量的列,创建第二个pandas数据帧并添加到第二个pandas数据帧中。
然后,得到的数据帧将是一个相关性矩阵,其中列索引是地理位置,行索引是其他44个变量。
到目前为止,我拥有的代码是:
import pandas as pd
from dython.nominal import compute_associations
t
我目前正在用下面的代码汇总数字。对于dataframe中的每个元素,我设置了几个求和条件,但它是已创建的报告中最慢的部分。有没有一种更快的方法来识别数据帧中以某个字符串开头的所有元素?
for idx, eachRecord in attributionCalcDF.T.iteritems():
if (attributionCalcDF['SEC_ID'].ix[idx] == 0):
currentGroup = lambda x: str(x).startswith(attributionCalcDF['GROUP_LIST
我有两个熊猫数据框架,包含数百万行的巨蟒。我希望根据以下三个条件从第一个数据帧中删除行,该数据帧包含单词(以秒为单位):
如果单词出现在句子开头的一行如果单词出现在句子末尾的一行如果单词出现在句子的中间一行(确切的单词,而不是子集)
示例:
第一个Dataframe:
This is the first sentence
Second this is another sentence
This is the third sentence forth
This is fifth sentence
This is fifth_sentence
第二个Dataframe:
Second
forth
我使用Pandas从数据帧olddf中选择列。假设变量名是'a','b','c',‘starswith1 1’,‘startswith3 2’,‘startswith3 3’,...,‘startswith3 10’。
我的方法是创建一个具有公共起始值的所有变量的列表。
filter_col = [col for col in list(health) if col.startswith('startswith')]
然后,我想按名称选择该列表中的列以及其他列,这样我就不必全部键入它们。然而,这不起作用:
newdf =
假设我计算了熊猫数据帧中的行数。我使用以下代码来完成此操作:
df.shape
它给出了以下结果:(1700,12)
如何将1700值添加到现有的pandas数据帧中?我们将把与该值相关联的列称为D。
当前数据帧:
A B C
30 40 text
所需数据帧:
A B C D
30 40 text 1700
我有一个数据帧,看起来像这样: Name V
S_1 NaN
01 p
02 p
S_2 NaN
03 p
S_3 NaN
04 p 我想让"Name“列中包含"S_”的值在它自己的列中,"S_“值在它自己的列中(与"S_”值对齐),"V“列中的值与"Name”列对齐。 因此,最终的数据帧将如下所示: Name Name2 V
S_1 01 p
S_1 02 p
S_2 03 p
S_3 0
我的dataframe df1中有这样的列,其中以20开头的列是动态生成的。
我可以使用以下方法将以20开头的列重命名为2019_p、2020_p、2021_p
df.select(*[col(c).alias(f"${c}_p") if c.startswith("20") else col(c) for c in df.columns])
现在我有了两个数据帧,一个原始数据帧和另一个数据帧,列以20开头,以_p结尾。我希望根据不带_p或with_p的非空列来最终选择列。如何实现这一点?
对不起,我在SparkSQL中有这样一个数据:
id | name | data
----------------
1 | Mary | ABCD
2 | Joey | DOGE
3 | Lane | POOP
4 | Jack | MEGA
5 | Lynn | ARGH
我想知道如何做两件事:
1)在一个或多个列上使用scala函数生成另一列2)在一个或多个列上使用scala函数替换一列
示例:
1)创建一个新的布尔列,该列指示数据是否以A开头:
id | name | data | startsWithA
------------------------------
1 |
假设我有两个数据帧: df1: Name Data123 Data321 Age
A 123 321 20 df2: Name Age
B 20 我希望检查哪个dataframe的列名包含字符串"Data“。如果是,数据帧将作为一个整体传递到自定义函数中。因此,在本例中,我只希望将df1传递给上述函数。请指教