GVKun编程网logo

如何在iPython笔记本中预览大熊猫DataFrame的一部分?(python画大熊猫)

10

本文将分享如何在iPython笔记本中预览大熊猫DataFrame的一部分?的详细内容,并且还将对python画大熊猫进行详尽解释,此外,我们还将为大家带来关于DataFramesPython如何在P

本文将分享如何在iPython笔记本中预览大熊猫DataFrame的一部分?的详细内容,并且还将对python画大熊猫进行详尽解释,此外,我们还将为大家带来关于DataFrames Python 如何在 Python 中的 Dataframe 中将 A 列中的单元格 A1 与 B2 列中的单元格循环、python – 从另一个Dataframe创建Dataframe、python – 使用另一个DataFrame过滤Pandas DataFrame、python – 在大熊猫DataFrame中选择和删除具有相同名称的列的相关知识,希望对你有所帮助。

本文目录一览:

如何在iPython笔记本中预览大熊猫DataFrame的一部分?(python画大熊猫)

如何在iPython笔记本中预览大熊猫DataFrame的一部分?(python画大熊猫)

我刚开始在IPython Notebook中使用熊猫,遇到以下问题:当DataFrame从CSV文件读取的内容很小时,IPython
Notebook在漂亮的表格视图中显示它。当DataFrame较大时,将输出以下内容:

In [27]:evaluation = readCSV("evaluation_MO_without_VNS_quality.csv").filter(["solver", "instance", "runtime", "objective"])In [37]:evaluationOut[37]:<class ''pandas.core.frame.DataFrame''>Int64Index: 333 entries, 0 to 332Data columns:solver       333  non-null valuesinstance     333  non-null valuesruntime      333  non-null valuesobjective    333  non-null valuesdtypes: int64(1), object(3)

我希望将数据框的一小部分视为表格,以确保其格式正确。我有什么选择?

答案1

小编典典

在这种情况下,如果DataFrame长度较长但又不太宽,则可以将其切片:

>>> df = pd.DataFrame({"A": range(1000), "B": range(1000)})>>> df<class ''pandas.core.frame.DataFrame''>Int64Index: 1000 entries, 0 to 999Data columns:A    1000  non-null valuesB    1000  non-null valuesdtypes: int64(2)>>> df[:5]   A  B0  0  01  1  12  2  23  3  34  4  4

ix已弃用。

如果它既长又宽,我倾向于使用.ix

>>> df = pd.DataFrame({i: range(1000) for i in range(100)})>>> df.ix[:5, :10]   0   1   2   3   4   5   6   7   8   9   100   0   0   0   0   0   0   0   0   0   0   01   1   1   1   1   1   1   1   1   1   1   12   2   2   2   2   2   2   2   2   2   2   23   3   3   3   3   3   3   3   3   3   3   34   4   4   4   4   4   4   4   4   4   4   45   5   5   5   5   5   5   5   5   5   5   5

DataFrames Python 如何在 Python 中的 Dataframe 中将 A 列中的单元格 A1 与 B2 列中的单元格循环

DataFrames Python 如何在 Python 中的 Dataframe 中将 A 列中的单元格 A1 与 B2 列中的单元格循环

这是你想要的吗?

df.groupby('Column_1').agg({'Column_2': ['first','last']})

          Column_2          
             first      last
Column_1                    
A         1-1-2000  1-1-2013
B         1-1-2001  1-1-2010
C         1-1-2002  1-1-2011
D         1-1-2015  1-1-2015
F         1-1-2020  1-1-2020

python – 从另一个Dataframe创建Dataframe

python – 从另一个Dataframe创建Dataframe

我有一个如下所示的数据框

Index  Batch    Name
    0        1      Jon
    1    
    2        2      Adam
    3         
    4        3      Voges
    5       
    6        4      Jon

我想从这个数据框中创建另一个数据帧,并将批次编号分组

Batch   Name/Batches
1        Jon(1,4)
2        Adam(2)
3        Voges(3)
4        Jon(1,4)

我怎么能这样做,如果我从现有DF创建一个新列表或ordereddict然后将其转换为另一个DF,或者这可以在运行中完成.

更新:
 在他们之间编辑Spaces

解决方法

这是使用groupby变换和自定义函数的一种方法:

def stringer(x):
    return '('+','.join(map(str,x))+')'

df['Name'] += df.groupby('Name')['Batch'].transform(stringer)

print(df)

   Batch       Name
0      1  Jon(1,4)
1      2    Adam(2)
2      3   Voges(3)
3      4  Jon(1,4)

更新空行的记帐

在这种情况下你可以使用numpy.where:

import numpy as np

def stringer(x):
    return '('+',map(int,x)))+')'

s = df.dropna(subset=['Name']).groupby('Name')['Batch'].apply(stringer)

df['Name/Batch'] = np.where(df['Name'].notnull(),df['Name'] + df['Name'].map(s),df['Name'])

print(df)

   Index  Batch   Name Name/Batch
0      0    1.0    Jon  Jon(1,4)
1      1    NaN    NaN        NaN
2      2    2.0   Adam    Adam(2)
3      3    NaN    NaN        NaN
4      4    3.0  Voges   Voges(3)
5      5    NaN    NaN        NaN
6      6    4.0    Jon  Jon(1,4)

python – 使用另一个DataFrame过滤Pandas DataFrame

python – 使用另一个DataFrame过滤Pandas DataFrame

我有一个多索引DataFrame,第一级作为组ID,第二级作为元素名.还有更多的组,但下面只显示了第一组.
2000-01-04  2000-01-05 
Group Element                                     
1       A          -0.011374    0.035895 
        X          -0.006910    0.047714 
        C          -0.016609    0.038705 
        Y          -0.088110   -0.052775 
        H           0.000000    0.008082

我有另一个DataFrame只包含1个索引,即组ID.两者的列是相同的,它们是日期.

2000-01-04  2000-01-05 
Group                                     
1        -0.060623   -0.025429 
2        -0.066765   -0.005318 
3        -0.034459   -0.011243 
4        -0.051813   -0.019521 
5        -0.064367    0.014810

我想使用第二个DataFrame来过滤第一个DataFrame,检查每个元素是否小于该日期组的值,以获得如下所示:

2000-01-04  2000-01-05 
Group Element                                     
1       A          False        False     
        X          False        False     
        C          False        False     
        Y          True         True
        H          False        False

最终,我只对真实的元素和它们的真实日期感兴趣.在迭代日期中真实的元素列表将是很好的,我通过制作False NaN然后使用dropNa()来做.

我知道我可以编写一堆嵌套for循环来做到这一点,但时间至关重要;我想不出一种方法来使用pandas数据帧结构本质上和pythonically来做到这一点.任何帮助将非常感谢!

解决方法

您可以使用groupby申请:
In [11]: g = df1.groupby(level='Group')

In [12]: g.apply(lambda x: x <= df2.loc[x.name])
Out[12]: 
              2000-01-04 2000-01-05
Group Element                      
1     A            False      False
      X            False      False
      C            False      False
      Y             True       True
      H            False      False

python – 在大熊猫DataFrame中选择和删除具有相同名称的列

python – 在大熊猫DataFrame中选择和删除具有相同名称的列

我有一个巨大的DataFrame,其中一些列具有相同的名称.当我尝试选择存在两次的列时(例如del df [‘col name’]或df2 = df [‘col name’]),我得到一个错误.我能做什么?

解决方法

您可以按索引对列列出:
>>> df = pd.DataFrame([[1,2],[3,4],[5,6]],columns=['a','a'])
>>> df
   a  a
0  1  2
1  3  4
2  5  6
>>> df.iloc[:,0]
0    1
1    3
2    5

或者您可以重命名列,例如

>>> df.columns = ['a','b']
>>> df
   a  b
0  1  2
1  3  4
2  5  6

关于如何在iPython笔记本中预览大熊猫DataFrame的一部分?python画大熊猫的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于DataFrames Python 如何在 Python 中的 Dataframe 中将 A 列中的单元格 A1 与 B2 列中的单元格循环、python – 从另一个Dataframe创建Dataframe、python – 使用另一个DataFrame过滤Pandas DataFrame、python – 在大熊猫DataFrame中选择和删除具有相同名称的列等相关知识的信息别忘了在本站进行查找喔。

本文标签: