用dataframe 部分列生成新dataframe
时间: 2023-11-18 22:53:09 浏览: 83
在 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会多一行为0
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 中生成新列,可以使用以下方法:
1. 使用已有列的值进行计算并赋值给新列,例如:
```python
df['new_column'] = df['column1'] + df['column2']
```
2. 使用 lambda 表达式对每一行进行计算并赋值给新列,例如:
```python
df['new_column'] = df.apply(lambda row: row['column1'] + row['column2'], axis=1)
```
3. 使用 numpy 中的函数对列进行计算并赋值给新列,例如:
```python
import numpy as np
df['new_column'] = np.log(df['column1'])
```
以上是几种常见的生成新列的方法,你可以根据具体的需求选择适合自己的方法。
阅读全文