草庐IT

Dataframe

全部标签

python - 在 pandas.drop_duplicates 之后重建索引

我想打开一个文件,读取它,在文件的两列中删除重复项,然后进一步使用没有重复项的文件进行一些计算。为此,我使用了pandas.drop_duplicates,它在删除重复项后也会删除索引值。例如,删除第1行后,file1变为file2:file1:Var1Var2Var3Var40522389165234321513783332467file2:Var1Var2Var3Var4052238921513783332467要进一步将file2用作数据框,我需要将其重新索引为0、1、2...这是我使用的代码:file1=pd.read_csv("filename.txt",sep='|',he

python - 将大型 Pandas DataFrame 写入 SQL Server 数据库

我有74个相对较大的PandasDataFrame(大约34,600行和8列),我试图尽快将它们插入到SQLServer数据库中。在做了一些研究之后,我了解到好的olepandas.to_sql函数不适用于向SQLServer数据库中进行如此大的插入,这是我最初采用的方法(非常慢-将近一个小时应用程序完成与使用mysql数据库时大约4分钟。)Thisarticle,以及许多其他StackOverflow帖子都帮助我指明了正确的方向,但是我遇到了障碍:出于上面链接中解释的原因,我正在尝试使用SQLAlchemy的核心而不是ORM。因此,我使用pandas.to_dict将数据帧转换为字典

python - 如何在 Pandas 中做 'lateral view explode()'

这个问题在这里已经有了答案:Howtounnest(explode)acolumninapandasDataFrame,intomultiplerows(16个答案)关闭3年前。我想这样做:#input:AB0[1,2]101[5,6]-20#output:AB0110121025-2036-20每一列A的值都是一个列表df=pd.DataFrame({'A':[[1,2],[5,6]],'B':[10,-20]})df=pd.DataFrame([[item]+list(df.loc[line,'B':])forlineindf.indexforitemindf.loc[line,'

python - 从具有多个字符串的列制作 get_dummies 类型数据框的最快方法

我有一列“col2”,其中包含一个字符串列表。我当前的代码太慢了,大约有2000个唯一字符串(下例中的字母)和4000行。最终为2000列和4000行。In[268]:df.head()Out[268]:col1col206A,B115C,G,A225B有没有一种快速的方法可以将其转换为getdummies格式?每个字符串都有自己的列,如果该行在col2中有该字符串,则在每个字符串的列中有一个0或1。In[268]:defget_list(df):d=[]forrowindf.col2:row_list=row.split(',')forstringinrow_list:ifstrin

python - Pandas:水平组合两个 DataFrame

这个问题在这里已经有了答案:Concatenaterowsoftwodataframesinpandas(2个答案)关闭5年前。我有两个PandasDataFrame,每个都有不同的列。我想基本上将它们水平粘合在一起(它们每个都有相同的行数,所以这应该不是问题)。一定有一种简单的方法可以做到这一点,但我已经阅读了文档,concat不是我要找的(我不认为)。有什么想法吗?谢谢!

python - 汇总列以形成新的数据框

我有一个数据框ABCD2015-07-184.534390e+052.990611e+055.706540e+054.554383e+052015-07-223.991351e+052.606576e+053.876394e+054.019723e+052015-08-071.085791e+058.215599e+041.356295e+051.096541e+052015-08-191.397305e+068.681048e+051.672141e+061.403100e+06...我只是想对所有列求和以获得一个新的数据框ABCDsumssss按列求和,然后用to_csv()打印。

python - 如何从 Python 中创建的 Dataframe 中删除索引?

我通过使用以下命令合并2个列表创建了一个Dataframedf:importpandasaspddf=pd.DataFrame({'Name':list1,'Probability':list2})但我想删除第一列(索引列)并使名为Name的列成为第一列。我尝试使用deldf['index']和index_col=0。但他们没有工作。我还检查了reset_index()但这不是我需要的。我想从这样创建的数据框中完全删除整个索引列(如上所述)。有人请帮忙! 最佳答案 您可以使用set_index,docs:importpandasas

python - pandas groupby 删除列

我正在按操作进行简单分组,尝试比较分组均值。正如您在下面看到的,我从一个更大的数据框中选择了特定的列,所有缺失值都已从中删除。但是当我分组时,我丢失了几列:我从来没有在pandas上遇到过这种情况,而且我在堆栈溢出上也没有发现任何其他类似的东西。有没有人有任何见解? 最佳答案 我认为这是自动排除“讨厌的”列,描述了here.示例:df=pd.DataFrame({'C':{0:-0.91985400000000006,1:-0.042379,2:1.2476419999999999,3:-0.00992,4:0.290213,5:0

python - 使用 Pandas DataFrame.sort() 时,我可以让它真正对行重新编号吗?

我总是对此感到惊讶:>data=DataFrame({'x':[1,2],'y':[2,1]})>data=data.sort('y')>dataxy121012>data['x'][0]1有没有办法让索引重新分配以适应新的排序? 最佳答案 就我而言,我很高兴排序不会丢弃索引信息。如果是这样,那么首先有一个索引而不是另一个列就没有多大意义了。如果您想将索引重置为一个范围,您可以:>>>dataxy121012>>>data.reset_index(drop=True)xy021112您可以根据需要重新分配或使用inplace=Tru

python - 如何在 Pandas 中复制行?

我的pandas数据框如下所示:PersonIDZipCodeGender01234588238182Female13291727188172Male21827355290291Female我想将每一行复制3次,例如:PersonIDZipCodeGender01234588238182Female01234588238182Female01234588238182Female13291727188172Male13291727188172Male13291727188172Male21827355290291Female21827355290291Female218273552902