Nyx*_*nyx 7 python series dataframe python-3.x pandas
我正在尝试将 aPandas.Series
作为新行添加到 a 中Pandas.DataFrame
。然而,系列似乎总是被添加,其索引显示为单独的行。
我们如何将其附加为单行?
import pandas as pd
df = pd.DataFrame([
('Tom', 'male', 10),
('Jane', 'female', 7),
('Peter', 'male', 9),
], columns=['name', 'gender', 'age'])
df.set_index(['name'], inplace=True)
print(df)
Run Code Online (Sandbox Code Playgroud)
gender age
name
Tom male 10
Jane female 7
Peter male 9
Run Code Online (Sandbox Code Playgroud)
s = pd.Series(('Jon', 'male', 12), index=['name', 'gender', 'age'])
print(s)
Run Code Online (Sandbox Code Playgroud)
name Jon
gender male
age 12
dtype: object
Run Code Online (Sandbox Code Playgroud)
预期结果
gender age
name
Tom male 10
Jane female 7
Peter male 9
Jon male 12
Run Code Online (Sandbox Code Playgroud)
尝试1
df2 = df.append(pd.DataFrame(s))
print(df2)
Run Code Online (Sandbox Code Playgroud)
0 age gender
Tom NaN 10.0 male
Jane NaN 7.0 female
Peter NaN 9.0 male
name Jon NaN NaN
gender male NaN NaN
age 12 NaN NaN
Run Code Online (Sandbox Code Playgroud)
尝试#2
df2 = pd.concat([df, s], axis=0)
print(df2)
Run Code Online (Sandbox Code Playgroud)
0 age gender
Tom NaN 10.0 male
Jane NaN 7.0 female
Peter NaN 9.0 male
name Jon NaN NaN
gender male NaN NaN
age 12 NaN NaN
Run Code Online (Sandbox Code Playgroud)
尝试#3
df2 = pd.concat([df, pd.DataFrame(s)], axis=0)
print(df2)
Run Code Online (Sandbox Code Playgroud)
0 age gender
Tom NaN 10.0 male
Jane NaN 7.0 female
Peter NaN 9.0 male
name Jon NaN NaN
gender male NaN NaN
age 12 NaN NaN
Run Code Online (Sandbox Code Playgroud)
这“有效”,但您可能需要重新考虑如何构建数据框。如果追加数据,请一次性完成所有操作,而不是逐行执行。
>>> pd.concat([df, s.to_frame().T.set_index('name')])
gender age
name
Tom male 10
Jane female 7
Peter male 9
Jon male 12
Run Code Online (Sandbox Code Playgroud)
作为数据框的一列,系列通常都是相同的数据类型(例如age
)。在这种情况下,您的系列代表给定记录的单行数据,例如数据库中可能具有混合类型的行。您可能想将您的系列视为数据框行。
row = pd.DataFrame({'gender': 'male', 'age': 12},
index=pd.Index(['Jon'], name='name'))
>>> pd.concat([df, row])
gender age
name
Tom male 10
Jane female 7
Peter male 9
Jon male 12
>>> pd.concat([df, row])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9760 次 |
最近记录: |