如何在 python 中绘制重复文本的计数
How to plot in python for count of repeated text
我正在尝试使用 seaborn 和 matplotlib 绘制我的数据框,但出现无法将字符串转换为浮点数之类的错误。
我的数据是这样的:
ID | Status | Date | Columns|
-------+-------------+------+--------+
28 | ACTIVE | | |
29 | ACTIVE | | |
49623 | TERMINATED | | |
49624 | TERMINATED | | |
49625 | TERMINATED | | |
到目前为止我已经尝试过:
df_count = df.apply(pd.value_counts)
plt.plot(df_count)
其中 df_count 看起来像
|STATUS|
-----------+------+
ACTIVE |38537 |
TERMINATED |1185 |
尝试执行 sns.barplot(df)
时出现以下错误:
unsupported operand type(s) for +: 'int' and 'str'
并尝试执行 plt.plot(df)
它给出了以下错误:
ValueError: could not convert string to float: '12/31/2014 0:00'
我的python剧情好像很零,求指教
我认为你必须指定 x 和 y。请尝试:
sns.barplot(x=df_count.index,y=df_count.Status)
sns.plt.show()
-编辑
test.csv:
,STATUS
ACTIVE,38537
TERMINATED,1185
代码:
import pandas as pd
import seaborn as sns
df = pd.read_csv('test.csv', delimiter=',')
df.index.names = ['Type']
sns.barplot(x=df.index,y=df.STATUS)
sns.plt.show()
输出:
最简单的方法是使用 pandas 的集成绘图功能,使用
df_count.plot(kind="bar")
.
这是一个完整的例子:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
cats = np.random.choice(["Active", "Terminated"], 100, p=[0.43, 0.57])
df = pd.DataFrame({"ID": np.arange(100), "Status":cats, "unusedData":np.random.rand(100)})
df_count = df[["Status"]].apply(pd.value_counts)
df_count.plot(kind="bar")
plt.show()
最后两个答案是 pandas
和 seaborn
,这个是 matplotlib
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({"STATUS": ['Active', 'Terminated'], "counts": [38537,1185]})
x_pos = np.arange(df.shape[0])
plt.bar(x_pos, df.counts, align='center', color=['green', 'blue'], alpha=0.5)
plt.xticks(x_pos, df.STATUS)
plt.ylabel('Counts')
plt.title('STATUS')
plt.show()
我正在尝试使用 seaborn 和 matplotlib 绘制我的数据框,但出现无法将字符串转换为浮点数之类的错误。
我的数据是这样的:
ID | Status | Date | Columns|
-------+-------------+------+--------+
28 | ACTIVE | | |
29 | ACTIVE | | |
49623 | TERMINATED | | |
49624 | TERMINATED | | |
49625 | TERMINATED | | |
到目前为止我已经尝试过:
df_count = df.apply(pd.value_counts) plt.plot(df_count)
其中 df_count 看起来像
|STATUS|
-----------+------+
ACTIVE |38537 |
TERMINATED |1185 |
尝试执行 sns.barplot(df)
时出现以下错误:
unsupported operand type(s) for +: 'int' and 'str'
并尝试执行 plt.plot(df)
它给出了以下错误:
ValueError: could not convert string to float: '12/31/2014 0:00'
我的python剧情好像很零,求指教
我认为你必须指定 x 和 y。请尝试:
sns.barplot(x=df_count.index,y=df_count.Status)
sns.plt.show()
-编辑
test.csv:
,STATUS
ACTIVE,38537
TERMINATED,1185
代码:
import pandas as pd
import seaborn as sns
df = pd.read_csv('test.csv', delimiter=',')
df.index.names = ['Type']
sns.barplot(x=df.index,y=df.STATUS)
sns.plt.show()
输出:
最简单的方法是使用 pandas 的集成绘图功能,使用
df_count.plot(kind="bar")
.
这是一个完整的例子:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
cats = np.random.choice(["Active", "Terminated"], 100, p=[0.43, 0.57])
df = pd.DataFrame({"ID": np.arange(100), "Status":cats, "unusedData":np.random.rand(100)})
df_count = df[["Status"]].apply(pd.value_counts)
df_count.plot(kind="bar")
plt.show()
最后两个答案是 pandas
和 seaborn
,这个是 matplotlib
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({"STATUS": ['Active', 'Terminated'], "counts": [38537,1185]})
x_pos = np.arange(df.shape[0])
plt.bar(x_pos, df.counts, align='center', color=['green', 'blue'], alpha=0.5)
plt.xticks(x_pos, df.STATUS)
plt.ylabel('Counts')
plt.title('STATUS')
plt.show()