import pandas as pd
catalog = pd.read_csv('catalog.txt')
slim_list = []
for i in range(len(catalog)):
if (pd.isna(catalog['z'][i]) == False and pd.isna(catalog['B'][i]) == False):
slim_list.append(i)
slim_catalog = pd.DataFrame(columns = catalog.columns)
for j in range(len(slim_list)):
data = (catalog.iloc[j]).to_dict()
slim_catalog = slim_catalog.append(data, ignore_index = True)
pd.to_csv('slim_catalog.csv')
这在熊猫身上是完全错误的做法。
首先,永远不要迭代某个范围,即在范围(len(catalog)):中为i执行,然后单独索引到行:
catalog['z'][i]
中,这是非常低效的。
其次,不要在循环中使用
pd.dataframe.append
创建pandas.dataframe,这是一个线性操作,因此整个过程将是二次时间。
catalog[catalog.loc[:, ['z', 'B']].notna().all(axis=1)].to_csv('slim_catalog.csv')
not_nan_zB = catalog.loc[:, ['z', 'B']].notna().all(axis=1)
catalog[not_nan_zB].to_csv('slim_catalog.csv')
假设我创建了一个熊猫数据帧 现在我正在运行一个像这样的选择 问题是:我如何将这个结果导出/保存到一个CSV文件? 预先默许 a
这不是一个重复的问题,但类似于 根据pandas中列中的值从数据帧中选择行
我想在指定的时间戳范围内从数据帧中选择行的子集。 下面是我所做的,但它似乎没有工作。我正在尝试选择发生在01/01/2019 01:00和01/01/2021 01:00之间的行子集。 非常感谢。
在编程方面,我是一个新手,特别是熊猫。我也很抱歉,我问了一个已经在SF上提到的问题:我并不真正理解这个问题的现有答案。可能重复,但这个答案对新手来说很容易理解,如果不太全面的话。
本文向大家介绍pandas 选择重复,包括了pandas 选择重复的使用技巧和注意事项,需要的朋友参考一下 示例 如果需要将值设置0为column B,则在columnA中的重复数据中,首先使用创建掩码Series.duplicated,然后使用DataFrame.ix或Series.mask: 如果需要反面罩使用~:
我正在尝试从多索引数据帧中仅使用一个索引来创建新的数据帧。 理想情况下,我想要这样的东西: 和: 基本上,我想删除除level之外的多索引的所有其他索引。有没有一个简单的方法可以做到这一点?