我从CSV文件中读取了数千行数据,其中包含用于计算不同输出的数据。我读入此CSV文件并将输入存储在Pandas数据帧中。然后,我使用itterrows()遍历数据帧。有时我的代码会失败,这时我希望读入原始文件,但在失败后从一行开始处理。因此,当这种情况发生时,设置我的代码,以便在进入itterrows() for循环之前取消注释两行,并将原始数据帧分割成一定大小:
# slicing it and re-indexing when a restart is needed
df_slice = df.iloc[1292:,]
for index,row in df_slice.iterrows(
我使用了一个数据have (初始索引为0.9999),并按年份进行了分区:
requests_df = {year : df[df['req_year'] == year] for year in df['req_year'].unique()}
和往常一样,每个子帧保留自己的索引顺序。然后,在尝试对其中一个孤立帧(df_yr = requests_df[2015])进行索引时,我得到了一个非常出乎意料的行为:
for idx in df_year.index:
qty = frame[idx]['qty_tickets']
原因
在pandas数据帧中,我需要找到任意行中包含零的列,并删除整个列。 例如,如果我的数据帧看起来像这样: A B C D E F G H
0 1 0 1 0 1 1 1 1
1 0 1 1 1 1 0 1 1 我需要删除列A、B、D和F。我知道如何删除这些列,但是以编程方式识别带有零的一列让我摸不着头脑。
因此,我正在尝试创建一个python脚本,该脚本允许我在使用pandas创建的数据帧(masterfile)上执行SQL操作。数据帧从特定文件夹中找到的csv文件中提取其内容。 我能够成功地创建其他所有内容,但我在SQL操作部分遇到了麻烦。我正在尝试使用数据帧作为“数据库”,在这里我将使用我的SQL查询来拉取数据,但是我得到了一个"AttributeError:' dataframe‘object has no attribute 'cursor’“错误。 我没有看到很多pandas.read_sql_query()的例子,所以我很难理解我将如何在其中使用我的数据帧。
我有一个周期为14行的数据帧,即每条记录有14行数据(means,sdev等)。我想要提取第二、第四、第七和第九行,对每条记录(14行)重复提取。我的代码是:
Mean_df = df.iloc[[1,3,6,8]::14,:].copy()
这不起作用
TypeError: cannot do slice indexing on <class 'pandas.core.indexes.range.RangeIndex'> with these indexers [[1, 3, 6, 8]] of <class 'list'>
我从这里获
我在Pandas有一个数据帧,它显示了一个城市/州的男性所占的百分比。数据帧df如下所示(请注意,这不是我的实际使用情况/数据,但我的数据类型类似) STATE CITY PERC_MEN
ALABAMA ABBEVILLE 41.3%
ALABAMA ADAMSVILLE 53.5%
....
WYOMING WRIGHT 46.6% 每个State/percentage of men组合将恰好返回一个值。 如何显示给定州的城市/人口值?我的代码如下所示(我需要按STATE分组的第一行,因为我对数据做了其他事情) for state
我希望对每一对连续列进行除法,并重新填充计算值。例如,下面有下面的DataFrame。在下面的数据帧中,我要将B/A和D/C分开,然后B/A的结果应该在B列中重新填充,D列中应该填充D/C的结果。
请注意,我的实际DataFrame非常大。它有86列。我更希望有一个自动的方案,要么循环遍历所有列(即86列)来改变43列中的值,要么使用内置的Pandas函数执行此操作。
A B C D
0 2.056494 -3.002088 0.516822 -1.338846
1 0.082295 1.
这里我有一个数据帧
import pandas as pd
import numpy as np
data = pd.DataFrame(np.arange(100).reshape(20,5), columns=list('abcde'))
data = data.set_index(['a', 'b'])
print(data.head())
c d e
a b
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21
我有一个包含2列的数据帧,如下所示:
Index Year Country
0 2015 US
1 2015 US
2 2015 UK
3 2015 Indonesia
4 2015 US
5 2016 India
6 2016 India
7 2016 UK
我想创建一个新的数据帧,其中包含每年国家的最大计数。新的数据帧将包含3列,如下所示:
Index Year Countr
我试图用一个比系列的原始索引包含更多级别的索引( Series,ix)来设置a1的索引。
>>> a = pd.DataFrame({'a': [1, 2, 3], 'b': ['b', 'b', 'b'], 'x': [4, 5, 6]}).set_index(['a', 'b'])
>>> a
x
a b
1 b 4
2 b 5
3 b 6
>>>
>>> a1 = a
我有一个Pandas DataFrame,df,它有一个path列,其中包含用于分析的图像文件的路径。这个数据集中的一些图像实际上并不存在,因此我需要有选择地删除不存在的图像path的行。
目前,我正在遍历整个数据帧并重新分配它,如下所示:
for index, sample in df.iterrows():
if not os.path.isfile(sample['path']):
df = df.drop(index)
但是,由于我的数据集包含数以万计的图像,所以速度非常慢。
我还研究过使用更一般的问题中的方法
df = df.drop(df[n
在数据帧上使用转置之后,总是会有额外的一行作为初始数据帧索引的剩余行,例如:
import pandas as pd
df = pd.DataFrame({'fruit':['apple','banana'],'number':[3,5]})
df
fruit number
0 apple 3
1 banana 5
df.transpose()
0 1
fruit apple banana
number 3 5
即使我没有索引:
df