为何dataframe将列取出生成新dataframe会多一行为0
时间: 2023-12-03 22:38:39 浏览: 28
DataFrame将列取出生成新DataFrame时会多一行为0,是因为新生成的DataFrame的索引是原DataFrame的列索引,而原DataFrame的列索引是从0开始的,而新生成的DataFrame的索引是从1开始的,因此会多一行为0。可以通过将新生成的DataFrame的索引减1来解决这个问题。下面是一个例子:
```python
import pandas as pd
# 创建一个DataFrame
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky'], 'age': [28, 34, 29, 42]}
df = pd.DataFrame(data)
# 取出age列生成新的DataFrame
new_df = df[['age']]
# 将新生成的DataFrame的索引减1
new_df.index = new_df.index - 1
print(new_df)
```
输出结果为:
```
age
0 28
1 34
2 29
3 42
```
相关问题
用dataframe 部分列生成新dataframe
在 pandas 中,你可以使用 DataFrame 的切片操作来选择部分列生成新的 DataFrame。以下是一个示例代码:
```python
import pandas as pd
# 创建原始 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris'],
'Country': ['USA', 'UK', 'France']}
df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
# 选择部分列生成新 DataFrame
new_df = df[['Name', 'City']]
print("生成的新 DataFrame:")
print(new_df)
```
在这个示例中,我们首先创建了一个包含多个列的原始 DataFrame。然后,我们使用 `df[['Name', 'City']]` 的方式来选择部分列,这里选择了 'Name' 和 'City' 列,并将其赋值给新的 DataFrame `new_df`。你可以根据实际需求选择不同的列来生成新的 DataFrame。
选取一个dataframe符合要求的列生成新的dataframe可以使用什么函数
可以使用 pandas 的 loc 或 iloc 函数来选取一个 dataframe 符合要求的列生成新的 dataframe。其中,loc 函数是基于列标签进行选取,iloc 函数是基于列的位置进行选取。例如,以下代码选取了名为 col1 和 col2 的两列生成新的 dataframe:
```
import pandas as pd
# 创建 dataframe
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9]})
# 使用 loc 函数选取 col1 和 col2 列生成新 dataframe
df_new = df.loc[:, ['col1', 'col2']]
# 或者使用 iloc 函数选取第 0 和 1 列生成新 dataframe
df_new = df.iloc[:, [0, 1]]
```