dataframe添列
时间: 2023-11-18 08:13:52 浏览: 32
要向DataFrame添加列,可以使用以下方法之一:
1. 使用字典添加列:
```python
import pandas as pd
data = {'A': [1, 2, 3],
'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 添加新列
df['C'] = [7, 8, 9]
```
2. 使用现有列进行计算添加新列:
```python
import pandas as pd
data = {'A': [1, 2, 3],
'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 添加新列,新列的值由现有列计算得出
df['C'] = df['A'] + df['B']
```
3. 使用assign()方法添加列:
```python
import pandas as pd
data = {'A': [1, 2, 3],
'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 使用assign()方法添加新列
df = df.assign(C=[7, 8, 9])
```
这些方法都可以将新列添加到现有的DataFrame中。请根据你的具体需求选择适合的方法。
相关问题
dataframe 按列排序
可以使用两种方法对dataframe按列排序。
第一种方法是使用sort_values()方法,并指定axis=1参数。首先,导入pandas库并创建一个示例DataFrame,然后使用sort_values()方法对DataFrame的列进行排序,通过设置by=df.columns,可以按照列名的字母顺序对列进行排序,最后,通过设置axis=1参数,指定按列进行排序。以下是示例代码:
```python
import pandas as pd
# 创建一个示例DataFrame
data = {'A': [3, 1, 4], 'C': [2, 6, 5], 'B': [9, 8, 7]}
df = pd.DataFrame(data)
# 按照列名给列排序
df = df.sort_values(by=df.columns, axis=1)
print(df)
```
第二种方法是使用reindex()方法,并传递一个包含所需顺序的列名列表。首先,导入pandas库并创建一个示例DataFrame,然后使用reindex()方法对DataFrame的列进行排序,通过传递一个包含所需顺序的列名列表,可以按照指定顺序对列进行排序。以下是示例代码:
```python
import pandas as pd
# 创建一个示例DataFrame
data = {'A': [3, 1, 4], 'B': [2, 6, 5], 'C': [9, 8, 7]}
df = pd.DataFrame(data)
# 按照指定顺序给列排序
order = ['B', 'C', 'A']
df = df.reindex(columns=order)
print(df)
```
以上两种方法都可以对dataframe按列进行排序。
pandas dataframe 筛选列
要筛选pandas DataFrame的列,可以使用以下方法:
1. 使用列标签进行筛选:
```python
df_filtered = df[['column1', 'column2']]
```
这将返回一个新的DataFrame,其中只包含指定的列。
2. 使用列索引进行筛选:
```python
df_filtered = df.iloc[:, [0, 1]]
```
这将返回一个新的DataFrame,其中只包含指定的列索引。
3. 使用布尔条件进行筛选:
```python
df_filtered = df[df['column1'] > 10]
```
这将返回一个新的DataFrame,其中只包含满足指定条件的行。
4. 使用列名的字符串方法进行筛选:
```python
df_filtered = df.filter(like='column')
```
这将返回一个新的DataFrame,其中只包含列名中包含指定字符串的列。
5. 使用正则表达式进行筛选:
```python
df_filtered = df.filter(regex='^column')
```
这将返回一个新的DataFrame,其中只包含列名以指定字符串开头的列。