我有这个Dataframe:
import pandas as pd
df = pd.DataFrame({'Hugo' : {'age' : 21, 'weight' : 75},
'Bertram': {'age' : 45, 'weight' : 65},
'Donald' : {'age' : 75, 'weight' : 85}}).T
df.index.names = ['name']
age weight
name
Bertram 45 65
Donald 75 85
Hugo 21 75
Run Code Online (Sandbox Code Playgroud)
我想将索引更改为列'age':
df.set_index('age', inplace=True)
weight
age
45 65
75 85
21 75
Run Code Online (Sandbox Code Playgroud)
旧索引列名称丢失.有没有办法在不丢失原始索引列的情况下更改索引并再次将旧列作为"普通"列,这样看起来像这样?
name weight
age
45 Bertram 65
75 Donald 85
21 Hugo 75
Run Code Online (Sandbox Code Playgroud) 我有 2 个数据帧
df1
B C
A
0 300 6
1 400 7
2 500 8
3 600 9
df2
B C
A
2 433 99
3 555 99
Run Code Online (Sandbox Code Playgroud)
这就是我构建它们的方式:
df1 = pd.DataFrame({'A': [0, 1, 2, 3],
'B': [300, 400, 500, 600],
'C': [6, 7, 8, 9]})
df1.set_index('A', inplace=True)
df2 = pd.DataFrame({'A': [2, 3],
'B': [433, 555],
'C': [99, 99]})
df2.set_index('A', inplace=True)
Run Code Online (Sandbox Code Playgroud)
我想df1用df2基于索引的行替换所有行,结果应如下所示:
df_result
B C
A
0 300 6
1 400 7
2 433 99 …Run Code Online (Sandbox Code Playgroud) 我想根据索引中的值与特定列中的值结合从数据框中选择行:
df = pd.DataFrame([[0, 2, 3], [0, 4, 1], [0, 20, 30], [40, 20, 30]],
index=[4, 5, 6, 7], columns=['A', 'B', 'C'])
A B C
4 0 2 3
5 0 4 1
6 0 20 30
7 40 20 30
Run Code Online (Sandbox Code Playgroud)
同
df.loc[df['A'] == 0, 'C'] = 99
Run Code Online (Sandbox Code Playgroud)
我可以选择与列A = 0的所有行,并用99替换在列C中的值,但如何选择= 0和索引<6(我想选择的索引与该选择结合与A列中的所有行柱)?
当我使用 pandas.read_excel 导入 Excel 表时,存在列名相同的问题(或功能:-))。例如,Excel 文件有两列名为“dummy”,导入数据帧后,第二列名为“dummy.1”。有没有一种方法可以在不重命名选项的情况下导入?
我几天前安装了 RedisInsight -win.1.2.0。我用 VirusTotal 检查了安装文件。只有一台扫描仪报告感染了木马。这在我看来是虚惊一场。但是今天Windows Defender 停止了该文件。如果我今天用 VirusTotal 扫描 RedisInsight.exe 有 23 个发现!
在类的方法中,我使用以下语句:
self.__datacontainer.iloc[-1]['c'] = value
Run Code Online (Sandbox Code Playgroud)
这样做我得到一个“SettingWithCopyWarning:一个值正试图在来自 DataFrame 的切片的副本上设置”
现在我尝试重现此错误并编写以下简单代码:
import pandas, numpy
df = pandas.DataFrame(numpy.random.randn(5,3),columns=list('ABC'))
df.iloc[-1]['C'] = 3
Run Code Online (Sandbox Code Playgroud)
在那里我没有错误。为什么我在第一个语句中出现错误而不是在第二个语句中?
当对带有边缘子图的直方图使用绘图表达并更改轴标题时,我遇到轴标题显示两次的问题。
例如,请参阅以下代码:
import plotly.express as px
df = px.data.tips()
fig = px.histogram(df, x="total_bill", marginal="violin")
fig.update_xaxes(title_text='x-axis')
fig.update_yaxes(title_text='y-axis')
fig.show()
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能使轴标题仅显示一次?
我有两个带有相同(对应)索引的行的Dataframe,我想合并它.每行都有一个更新时间.对于具有相同索引的行,具有更高更新时间的行将获胜.应该采用"较新"行中的所有字段,除了字段仅在"较旧"行中是值.例:
df1 = pd.DataFrame({'Hugo' : {'age' : 21, 'weight' : 75},
'Niklas': {'age' : 46, 'weight' : 65},
'Ronald' : {'age' : 76, 'weight' : 85, 'height' : 176}}).T
df1.index.names = ['name']
df1['update_time'] = 1
df2 = pd.DataFrame({'Hugo' : {'age' : 22, 'weight' : 77},
'Bertram': {'age' : 45, 'weight' : 65, 'height' : 190},
'Donald' : {'age' : 75, 'weight' : 85},
'Ronald' : {'age' : 77, 'weight' : 84}}).T
df2.index.names = ['name']
df2['update_time'] = 2
df1:
+--------+-------+----------+----------+---------------+
| …Run Code Online (Sandbox Code Playgroud)