我有一个巨大的CSV文件,其中包含许多行很多的表。我想简单地将每个数据框拆分成2个(如果包含10行以上)。
如果为true,我希望第一个数据框包含前10个,其余的包含在第二个数据框中。
有便利的功能吗?我环顾四周,但发现没有什么用处…
即split_dataframe(df, 2(if > 10))?
split_dataframe(df, 2(if > 10))
如果满足条件,这将返回拆分的DataFrames,否则返回原始的和None(然后您将需要分别处理)。请注意,这假设拆分仅需每次进行一次,df并且拆分的第二部分(如果长度超过10行(意味着原始长度超过20行))是可以的。
None
df
df_new1, df_new2 = df[:10, :], df[10:, :] if len(df) > 10 else df, None
请注意,您也可以根据需要使用df.head(10)和df.tail(len(df) - 10)获取正面和背面。您还可以使用各种索引方法:如果需要,您可以仅提供第一个维度索引,例如,df[:10]而不是df[:10, :](尽管我想明确地编写有关所采用的维度的代码)。您也可以以类似的方式使用df.iloc和df.ix编制索引。
df.head(10)
df.tail(len(df) - 10)
df[:10]
df[:10, :]
df.iloc
df.ix
df.loc但是,使用时要小心,因为它是基于标签的,并且输入永远不会被解释为整数position。.loc仅当您碰巧索引索引是从0开始且没有间隔的整数时,才“偶然地”工作。
df.loc
.loc
但是,您还应该考虑pandas提供的各种选项,这些选项可将DataFrame的内容转储到HTML中,还可以考虑将LaTeX转储到LaTeX中,以便为演示文稿设计更好的表(而不仅仅是复制和粘贴)。只是简单地使用Google搜索方法将DataFrame转换为这些格式,就可以得到很多有关此应用程序的教程和建议。