我想创建2个子集,列的名称以radius_,area_开头。让我提供给你假数据。抱歉,我修改了下面的一点
data = {'radius_mean':[18, 21, 20, 11, 20],
'radius_se':[1, 0.5, 0.7, 0.4, 0.8],
'area_mean': [1001, 1326, 1203, 386, 1200],
'area_se': [153, 75, 94, 27, 95]}
df=pd.DataFrame(data)
df1=pd.DataFrame().
df2=pd.DataFrame().
subsets=[df1, df2].
features=['radius', 'area'].
for subset, feature in zip(subsets, features):
subcol=[col for col in df.columns if col.startswith(feature+ '_')].
print(subcol).
subset=df[subcol].
print(subset.head()).
我期望df1。
['radius_mean', 'radius_se'].
radius_mean radius_se.
0 18 1.0.
1 21 0.5.
2 20 0.7.
3 11 0.4.
4 20 0.8.
我期望df2,如下所示,但是data1和data2是空的,但是创建了子集,如下所示:
['area_mean', 'area_se'].
area_mean area_se.
0 1001 153.
1 1326 75.
2 1203 94.
3 386 27.
4 1200 95.
1条答案
按热度按时间w1jd8yoj1#
你遇到了一个问题,因为如何处理对 Dataframe 的引用。你的逻辑是有道理的,但我认为发生的事情是,你的表的副本,而不是保持对原始表的引用,所以当你试图更新原件的时候你实际上是在更新拷贝。你可以-通过在循环之后创建
data1
和data2
来解决这个问题,就像我在后面的代码中显示的那样解决方案:改为在循环中第一次创建data 1和data 2