我有一个pandas数据帧,它由300万行和50列组成,所有列都包含整数(正数或负数)。我想创建一个名为'feature‘的新列,它从现有的50列中提取最大的负数。
例如,如果对于给定行,50列包含以下值
-25,-24,-23,...,-1,1,...,23,24,25
“feature”列应返回-1。
因为我的数据帧太大了,所以我尝试的解决方案花费的时间太长了。例如,我尝试过使用列表理解,但是因为我求助于iterrows(),所以它太慢了(itertuples()的性能并没有明显的提高):
import numpy as np
import pandas as pd
from tq
我有一个充满字符串的pandas数据帧,一些字符串在2个或更多连续的列中找到。我只想检索那些在上一列中没有找到的字符串实例。我还想拥有每个这样的string实例的dataframe列。
因此,如果我的数据帧如下所示
A B C D
a 'x' 'a' 'r' 'a'
b 'y' 'y' 'b' 'b'
c 'z' 'x' 'x' 'y'
有时我会得到一个序列,其中所有的片段(长度都相等)属于一起。在这种情况下,我需要将序列分割,并将数据段排列到数据帧的列中。例如,序列的长度为30,我想制作一个包含三列的数据帧,其中每列分别由序列的第一个、第二个和最后10个条目组成。 我使用下面的代码,这是一个for循环,获取序列的每个块并将其作为列附加到dataframe。问题是,由于for循环,这是相当慢的。在Pandas中有没有更好的方法呢? def series_to_dataframe(series,length,interval_length):
#function to convert series to datafra
我将csv文件读入pandas数据帧,并希望将具有二进制答案的列从yes/no字符串转换为1/0整数。下面,我展示了其中一列("sampleDF“是pandas数据帧)。
In [13]: sampleDF.housing[0:10]
Out[13]:
0 no
1 no
2 yes
3 no
4 no
5 no
6 no
7 no
8 yes
9 yes
Name: housing, dtype: object
非常感谢您的帮助!
我在Pandas上遇到了一个非常奇怪(也令人沮丧)的问题。我想将数据帧中的每个单元格除以列的总和。我已经在谷歌上搜索并使用了建议的答案,但它不起作用-每一行的内容返回相同的值。
dfs = pd.DataFrame(np.random.randint(0,10,size=(3,3)), columns=['A','B','C'])
# Now here is the copied solution from google
dfs = dfs.div(dfs.sum(axis=0),axis=1)
因此,对于上面这样的简单示例,它工作得非常好。但是
我有一个非常简单的问题。我想更改pandas数据框中给定行的给定列中的值。我试着用下面的方法来做:
df['column3'].loc[this_date] = val
因此,我得到以下警告:
SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
我对此警告的解释是,通过使用列名('column3')和loc,我并没有真正访问(引用)数据框中所需的单元格。相反,我创建了一个对象,它是"cell“对象的副本,然后我尝试更改与这个
我有一个大约40万个观察值的数据框架。我想根据“state”列中每个状态的数量对50,000个观察值进行采样。因此,如果来自TX的所有观测值中有5%,那么2500个样本应该来自TX,以此类推。 我尝试了以下几种方法: import pandas as pd
df.sample(n=50000, weights = 'state', random_state = 101) 这给了我这个错误。 TypeError: '<' not supported between instances of 'str' and 'int` 有没有不同