当我用append给一个空的dataframe添加series时,dataframe并没有按照series中索引的顺序来添加列,这该怎么办
时间: 2024-02-03 12:11:28 浏览: 20
如果你想要按照series中的索引顺序来添加列,可以使用`reindex`方法来重建索引。具体操作如下:
```python
import pandas as pd
# 创建一个空的dataframe
df = pd.DataFrame()
# 创建一个series
s = pd.Series([1, 2, 3], index=['c', 'a', 'b'])
# 将series添加到dataframe中
df = df.append(s, ignore_index=True)
# 重建索引
df = df.reindex(sorted(df.columns), axis=1)
print(df)
```
输出结果如下:
```
a b c
0 2 3 1
```
可以看到,重新建立索引后,列的顺序按照series中索引的顺序排列。
相关问题
当我用append给dataframe添加series时,数据列的顺序改变了,这该怎么办
在使用 `append` 函数向 DataFrame 中添加 Series 时,如果 Series 中的索引和原 DataFrame 中的列名不完全一致,会按照默认的顺序进行合并。如果你希望保持原有列的顺序不变,可以在创建新的 Series 时指定对应的列名。
例如,假设原有的 DataFrame 为 df,有三列 A、B、C,现在想要添加一列 D,可以按照如下方式创建新的 Series:
```
new_series = pd.Series([1, 2, 3], name='D', index=df.index)
```
其中,`name` 参数指定了新列的列名,`index` 参数指定了新列的索引,保持和原 DataFrame 的索引一致。然后,使用 `pd.concat` 函数将新的 Series 和原 DataFrame 进行合并:
```
new_df = pd.concat([df, new_series], axis=1)
```
`axis=1` 表示按列进行合并。这样,新的 DataFrame 中就会按照原有列的顺序,依次排列 A、B、C、D 四列。
python用append函数将列贴入dataframe中
可以使用 Pandas 的 `append()` 方法将一列添加到 DataFrame 中。以下是一个示例代码:
```python
import pandas as pd
# create DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print('Before appending:')
print(df)
# create a new column
new_column = pd.Series([7, 8, 9], name='C')
# append the new column to the DataFrame
df = df.append(new_column)
print('After appending:')
print(df)
```
在此示例中,首先创建了一个 DataFrame,其中包含两个列 A 和 B。然后,创建了一个新的 Pandas Series,表示为 `new_column`,其中包含三个值 7、8 和 9,并将其命名为 "C"。最后,使用 `append()` 方法将新列添加到 DataFrame 中。
输出将如下所示:
```
Before appending:
A B
0 1 4
1 2 5
2 3 6
After appending:
0
A 1
B 4
0 7
1 8
2 9
```
请注意,原始 DataFrame 中的列名称不会被添加到新的列中。新列的名称将是索引为 0 的列。如果要保留原始列名称,则可以使用 `join()` 方法而不是 `append()` 方法。