在遍历多个数据帧时删除行

2024-09-29 21:51:40 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个数据帧列表:

yldDF = [dem2y, dem5y, dem10y, dem30y]


    Unnamed: 0 BBK01.WT0202
4   2014-01-02         0.21
5   2014-01-03         0.21
6   2014-01-04            .
7   2014-01-05            .
8   2014-01-06         0.20
9   2014-01-07         0.21
10  2014-01-08         0.21
11  2014-01-09         0.23
12  2014-01-10         0.21
13  2014-01-11            .

其中每个数据帧看起来像上面的。 现在,当我尝试遍历数据帧以删除第二列中的“.”时,它似乎不起作用

dem2y = pd.read_csv("0202.csv")
dem5y = pd.read_csv("0505.csv")
dem10y = pd.read_csv("1010.csv")
dem30y = pd.read_csv("3030.csv")

### Begin cleaning

yldDF = [dem2y, dem5y, dem10y, dem30y]

for i in yldDF: 

    i.drop(i.columns[2], axis = 1,inplace = True)
    i.drop(range(4),inplace=True)
    i = i[i[i.columns[1]].apply(lambda x: str(x)!=".")]

我在一个数据帧上尝试了最后一行,它似乎工作得很好,但是当我作为循环的一部分尝试时,它似乎没有任何效果。有什么我不知道的吗?或者是虫子


Tags: columnscsv数据true列表readdroppd
1条回答
网友
1楼 · 发布于 2024-09-29 21:51:40

如果问题是只有i被修改,您可以尝试以下技巧:

# Store your `pandas.DataFrame` in a dict
yldDict = {'dem2y': dem2y, 'dem5y': dem5y, 'dem10y': dem10y, 'dem30y': dem30y}

# Loop on the keys of the dict
for keys in yldDict.keys(): 
    df = yldDict.get(keys, 'error') # Get pandas.DataFrame from dict
    # Do the operation you need to do
    df.drop(df.columns[2], axis = 1, inplace = True)
    df.drop(range(4), inplace=True)
    df = df[df[df.columns[1]].apply(lambda x: str(x)!=".")]
    # Post to dict
    yldDict[keys] = df

# Extract from dict
dem2y, dem5y, dem10y, dem30y = yldDict['dem2y'], yldDict['dem5y'], yldDict['dem10y'], yldDict['dem30y']
# Delete dict
del yldDict

相关问题 更多 >

    热门问题