草庐IT

pyhton_Pandas

全部标签

python - 具有每列模式的多列 Pandas Fillna

处理人口普查数据时,我想用这两列各自的模式替换两列(“workclass”和“native-country”)中的NaN。我可以轻松获得这些模式:mode=df.filter(["workclass","native-country"]).mode()它返回一个数据框:workclassnative-country0PrivateUnited-States但是,df.filter(["workclass","native-country"]).fillna(mode)不会用任何东西替换每列中的NaN,更不用说与该列对应的模式了。有没有一种流畅的方法可以做到这一点?

python - 在 pandas 中使用 groupby 进行 bool 运算

我想以特定方式使用pandas.groupby。给定一个包含两个bool列(分别称为col1和col2)和一个id列的DataFrame,我想按以下方式添加一列:对于每个条目,如果(col2为True)并且(col1对于任何具有相同ID的条目为True)则分配True。否则为假。我做了一个简单的例子:df=pd.DataFrame([[0,1,1,2,2,3,3],[False,False,False,False,False,False,True],[False,True,False,False,True,True,False]]).transpose()df.columns=['id

python - 寻找整个 Pandas 数据框的中位数

我试图找到整个数据帧的中值流。第一部分是仅选择数据框中的某些项目。这有两个问题,它包括不在“状态”中的数据框部分。此外,中位数不是单个值,它基于行。我将如何获得数据框中所有数据的总体中位数? 最佳答案 两种选择:1)Pandas选项:df.stack().median()2)一个numpy选项:np.median(df.values) 关于python-寻找整个Pandas数据框的中位数,我们在StackOverflow上找到一个类似的问题: https://

python - 如何在 pandas 0.20.1+ 中重命名多级分组中的所有列

随着Pandas0.20.1的发布,对groupby.agg()的功能进行了新的弃用,其中包含用于重命名的字典。Deprecationdocumentation我正在尝试找到更新我的代码以解决这个问题的最佳方法,但是我正在努力解决我目前如何使用此重命名功能。当我进行聚合时,我经常为每个源列设置多个函数,并且我一直在使用此重命名功能来获得具有这些新列名称的单级索引。例子:df=pd.DataFrame({'A':[1,1,1,2,2],'B':range(5),'C':range(5)})In[30]:dfOut[30]:ABC01001111212232334244frame=df.g

python - 在 Pandas 中查找数字列名称

我需要在Pandas中选择列名称中仅包含数值的列,例如:df=01234window_labelnext_statesids017.018.016.015.015.0dddddd13.0118.016.015.015.016.0dddddd13.0216.015.015.016.015.0dddddd13.0315.015.016.015.017.0dddddd13.0415.016.015.017.0NaNdddddd13.0所以我只需要选择前五列。像这样的东西:df[df.columns.isnumeric()]编辑我想到了解决方案:digit_column_names=[numf

python - 为什么在一种情况下 pandas 数据框的一列中的值变化快而在另一种情况下变化慢?

我有两段代码似乎做同样的事情,但其中一段比另一段快将近一千倍。这是第一部分:t1=time.time()df[new_col]=np.where(df[col]在ts我有这样的值:0.0007321834564208984,0.0002918243408203125,0.0002799034118652344相比之下,这部分代码:t1=time.time()df['new_col']=np.where((df[col]>=i1)&(df[col]创建ts并填充如下值:0.11008906364440918,0.09556794166564941,0.08580684661865234我

python - 将数字和字母的字符串转换为 pandas 数据框中的 int/float

我觉得必须有一个快速解决我的问题的方法,我使用多个列表理解破解了一个实现不佳的解决方案,这无论如何都不理想。也许有人可以在这里帮忙。我有一组字符串值(例如3.2B、1.5M、1.1T),其中最后一个字符自然表示百万、十亿、万亿。在该集合中,还有NaN/'none'值应保持不变。我希望将它们转换为float或整数,因此在给定的示例中(3200000000,1500000,1100000000000)TIA 最佳答案 你可以创建一个函数:和applymap它到数据框中的每个条目:powers={'B':10**9,'M':10**6,'

python - 复杂的(对我来说)在 Pandas 中从宽到长 reshape

个人(索引从0到5)在两个位置之间进行选择:A和B。我的数据具有广泛的格式,其中包含因人而异的特征(ind_var)和仅因位置而异的特征(location_var)。例如,我有:In[281]:df_reshape_test=pd.DataFrame({'location':['A','A','A','B','B','B'],'dist_to_A':[0,0,0,50,50,50],'dist_to_B':[50,50,50,0,0,0],'location_var':[10,10,10,14,14,14],'ind_var':[3,8,10,1,3,4]})df_reshape_te

python - Pandas 数据框中值的组合

这是我的Pandas数据框:ItemSupport_Count0BREAD41MILK42DIAPER43BEER3我将如何从第1列“项目”中生成2组和3组项目的所有可能的唯一组合。示例(2项集):(面包,牛奶),(面包,尿布),(面包,啤酒),(牛奶,尿布)等示例(3个项目集):(BREAD,MILK,DIAPER),(BREAD,MILK,BEER),(MILK,DIAPER,BEER)等 最佳答案 您可以使用itertools库:importitertoolslist(itertools.combinations(df['It

python - 使用 Pandas 为 Scikit-Learn 准备 CSV 文件数据?

我有一个没有标题的csv文件,我正在使用pandas将其导入python。最后一列是目标类,其余列是图像的像素值。我如何继续使用pandas(80/20)将此数据集拆分为训练集和测试集?此外,一旦完成,我将如何拆分这些集合中的每一个,以便我可以定义x(除最后一列之外的所有列)和y(最后一列)?我使用以下方法导入了我的文件:dataset=pd.read_csv('example.csv',header=None,sep=',')谢谢 最佳答案 我建议使用sklearn的train_test_splitfromsklearn.mode