python取 dataframe的某一行并且成为dataframe
时间: 2025-05-15 21:50:46 浏览: 23
要在 Pandas 中选取 DataFrame 的某一行并将其转换为一个新的 DataFrame,可以通过 `.loc[]` 或者 `.iloc[]` 方法完成。这两种方法都可以用于按标签或位置索引来选择行。
以下是具体的操作方式:
### 使用 `loc[]` 方法
如果知道目标行的索引标签,则可以使用 `.loc[]` 来获取该行,并通过重新构建 DataFrame 将其作为新对象返回。
```python
import pandas as pd
# 创建示例 DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])
# 提取指定行(例如 row2)
selected_row_df = pd.DataFrame([df.loc['row2']])
print(selected_row_df)
```
上述代码会将 `'row2'` 转换为一个新的单行 DataFrame[^1]。
---
### 使用 `iloc[]` 方法
当不知道具体的索引名称而只知道它的整数位置时,可以用 `.iloc[]` 进行定位。假设要提取第 n 行的数据:
```python
# 提取第二行 (index=1),并转成 DataFrame 类型
selected_row_df = pd.DataFrame([df.iloc[1]])
print(selected_row_df)
```
这里 `[df.iloc[1]]` 是为了确保结果是一个列表形式传递给 `pd.DataFrame()` 构造器,从而保留原始列结构[^2]。
---
### 结果验证
无论是采用基于标签还是基于位置的方式,最终得到的结果都应满足以下条件:
- 返回的对象仍然是一个 DataFrame;
- 它只包含所选的那一行数据及其所有列。
注意:如果不加额外处理直接调用像 `df.loc[label]` 或 `df.iloc[index]` ,它们默认返回的是 Series 对象而不是 DataFrame 。因此需要显式地封装一层以便维持期望的数据格式[^3]。
---
#### 示例完整代码展示
下面给出完整的例子来说明这一过程:
```python
import pandas as pd
# 初始化测试用 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
# 显示原表
print("Original DataFrame:")
print(df)
# 把第三行变为新的 DataFrame ('Charlie')
new_df = pd.DataFrame([df.iloc[2]])
print("\nExtracted Row as New DataFrame:")
print(new_df)
```
运行此程序后可以看到清晰的区别——原本属于 Charlie 那条记录被单独拿出来形成了独立表格[^4]。
---
阅读全文
相关推荐


















