对dataframe改行名,或者说行标签,用列表修改行名

本文分享了在使用pandas处理数据时遇到的问题,即在尝试按行合并两个DataFrame时,由于行标签不一致导致合并失败。解决方案是通过修改DataFrame的行标签使其一致,然后成功进行合并。具体操作包括使用`df.index`修改列标签,并使用`pd.concat()`函数进行合并。

项目场景:

提示:
好想把自己遇到的所有bug和技术问题都写成博客,哈哈哈,这肯定是不可能的,毕竟太耗费时间了。


使用pandas处理数据,处理列表数据

问题描述:

提示:这里描述项目中遇到的问题:

test_data = pd.concat(MRI_test,X_test],axis=1)

合并失败!
因为,按行合并的两个df的行名不一致,和DF的合并规则,导致合并后的df的行数时这两个df的总和,没有数据的地方用nan显示。
在这里插入图片描述


解决方案:

一般方法:
#修改列标签

df.index = ['a0','a1','a2','a3','a4']

对dataframe改行名,或者说行标签,此次以列表形式修改行名
#在此处对test进行修改行标签,不然在后面合并会因为pandas合并规则而出现问题。

#1.修改行名
X_test.index = [x for x in range (320,354)]
#2.合并
test_data = pd.concat(MRI_test,X_test],axis=1)                                                                                                                                                                                                                                                                                                         

在这里插入图片描述
成功!

### 修改 Pandas DataFrame和列Pandas 中,可以通过多种方式来修改 DataFrame(即索引)和列。 #### 使用 `rename` 方法 可以利用 `rename` 函数来进更灵活的操作。此方法允许通过字典映射的方式更改特定的或列称: ```python import pandas as pd df = pd.DataFrame({ 'A': [1, 2], 'B': [3, 4]}, index=['ONE', 'TWO'] ) # 将'A'列改为'a','ONE'为'one' df_new = df.rename(columns={'A': 'a'}, index={'ONE': 'one'})[^1] print(df_new) ``` 如果要一次性修改列的字,则可以在大括号内部继续添加键值对即可实现批量重命操作。 #### 直接设置 `.index` 和 `.columns` 属性 另一种更为直接的方法就是直接给定新的列表或者数组赋值给对应的属性变量[index][^2] 或者 columns: ```python # 新建一个简单的数据框用于演示 df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB')) # 设置新列为['a', 'b'], 为[1, 2] df.columns = ['a', 'b'] df.index = [1, 2] print(df) ``` 这种方法适用于想要整体替换当前所有的/列标签的情况。 #### 使用带有 `inplace=True` 参数的 `rename` 为了简化流程并节省内存空间,在调用 rename() 时还可以传入参数 inplace=True 来实现在原对象上进变更而无需创建副本[^3]: ```python df.rename(index=str.lower, columns={"A": "a"}, inplace=True) ``` 上述代码会把所有标签转换成小写字母形式,并且将"A"这列改为"a".
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值