新建一个dataframe,这个dataframe的index和columns和另一个dataframe一样
时间: 2023-11-18 09:06:34 浏览: 66
可以使用另一个dataframe的index和columns来创建一个新的dataframe,如下所示:
```python
import pandas as pd
# 创建一个示例dataframe
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
# 使用df1的index和columns创建一个新的dataframe
df2 = pd.DataFrame(index=df1.index, columns=df1.columns)
print(df2)
```
输出结果为:
```
A B
a NaN NaN
b NaN NaN
c NaN NaN
```
这样就创建了一个新的dataframe,它的index和columns和df1一样,但是数据都是空值。可以根据需要,用其他值填充这个新的dataframe。
相关问题
pandas新建一个dataframe
可以使用pandas中的DataFrame()函数来新建一个DataFrame。例如:
```python
import pandas as pd
data = {'name': ['John', 'Jane', 'Sam'],
'age': [30, 25, 35],
'city': ['New York', 'San Francisco', 'Los Angeles']}
df = pd.DataFrame(data)
print(df)
```
输出:
```
name age city
0 John 30 New York
1 Jane 25 San Francisco
2 Sam 35 Los Angeles
```
也可以用 numpy ndarray 或 list 来新建 DataFrame
```python
import numpy as np
df = pd.DataFrame(np.random.randn(5,5),columns = ['a','b','c','d','e'])
print(df)
```
输出:
```
a b c d e
0 -1.846199 -0.263414 -1.922507 -0.857989 -0.053102
1 -1.846199 -0.263414 -1.922507 -0.857989 -0.053102
2 -1.846199 -0.263414 -1.922507 -0.857989 -0.053102
3 -1.846199 -0.263414 -1.922507 -0.857989 -0.053102
4 -1.846199 -0.263414 -1.922507 -0.857989 -0.053102
```
从一个dataframe中剔除另一个dataframe
以下是从一个dataframe中剔除另一个dataframe的两种方法:
1. 使用merge()函数和query()函数
```python
result = pd.merge(dataframe_b, dataframe_a, how='left', indicator=True).query("_merge=='left_only'").drop('_merge', 1)
```
这个方法使用merge()函数将两个dataframe合并,然后使用query()函数筛选出只在dataframe_b中出现的行,最后使用drop()函数删除多余的列。这个方法比较符合预期,但是需要注意的是,如果两个dataframe中有重复的行,这个方法只会保留一份。
2. 使用to_csv()函数和read_csv()函数
```python
dataframe_b.to_csv('temp.csv', index=False, header=None)
result = pd.read_csv('temp.csv', names=dataframe_b.columns).drop_duplicates(keep=False)
```
这个方法先将dataframe_b保存为csv文件,然后使用read_csv()函数读取这个文件,并且设置names参数为dataframe_b的列名,最后使用drop_duplicates()函数删除重复的行。这个方法比较简单,但是需要注意的是,如果dataframe_b中有空值,这个方法会将空值视为不同的值。
阅读全文